blob: d661973f5e25d9584eaeaa2dffd1296d05b68f66 [file]
// Copyright 2026 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Code generated file. DO NOT EDIT.
// Package streetviewpublish provides access to the Street View Publish API.
//
// For product documentation, see: https://developers.google.com/streetview/publish/
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
// import "google.golang.org/api/streetviewpublish/v1"
// ...
// ctx := context.Background()
// streetviewpublishService, err := streetviewpublish.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
// streetviewpublishService, err := streetviewpublish.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
// config := &oauth2.Config{...}
// // ...
// token, err := config.Exchange(ctx, ...)
// streetviewpublishService, err := streetviewpublish.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package streetviewpublish // import "google.golang.org/api/streetviewpublish/v1"
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"log/slog"
"net/http"
"net/url"
"strconv"
"strings"
"github.com/googleapis/gax-go/v2/internallog"
googleapi "google.golang.org/api/googleapi"
internal "google.golang.org/api/internal"
gensupport "google.golang.org/api/internal/gensupport"
option "google.golang.org/api/option"
internaloption "google.golang.org/api/option/internaloption"
htransport "google.golang.org/api/transport/http"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version
var _ = internallog.New
const apiId = "streetviewpublish:v1"
const apiName = "streetviewpublish"
const apiVersion = "v1"
const basePath = "https://streetviewpublish.googleapis.com/"
const basePathTemplate = "https://streetviewpublish.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://streetviewpublish.mtls.googleapis.com/"
// OAuth2 scopes used by this API.
const (
// Publish and manage your 360 photos on Google Street View
StreetviewpublishScope = "https://www.googleapis.com/auth/streetviewpublish"
)
// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
scopesOption := internaloption.WithDefaultScopes(
"https://www.googleapis.com/auth/streetviewpublish",
)
// NOTE: prepend, so we don't override user-specified scopes.
opts = append([]option.ClientOption{scopesOption}, opts...)
opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
opts = append(opts, internaloption.EnableNewAuthLibrary())
client, endpoint, err := htransport.NewClient(ctx, opts...)
if err != nil {
return nil, err
}
s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
s.Photo = NewPhotoService(s)
s.PhotoSequence = NewPhotoSequenceService(s)
s.PhotoSequences = NewPhotoSequencesService(s)
s.Photos = NewPhotosService(s)
if endpoint != "" {
s.BasePath = endpoint
}
return s, nil
}
// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
return NewService(context.TODO(), option.WithHTTPClient(client))
}
type Service struct {
client *http.Client
logger *slog.Logger
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
Photo *PhotoService
PhotoSequence *PhotoSequenceService
PhotoSequences *PhotoSequencesService
Photos *PhotosService
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewPhotoService(s *Service) *PhotoService {
rs := &PhotoService{s: s}
return rs
}
type PhotoService struct {
s *Service
}
func NewPhotoSequenceService(s *Service) *PhotoSequenceService {
rs := &PhotoSequenceService{s: s}
return rs
}
type PhotoSequenceService struct {
s *Service
}
func NewPhotoSequencesService(s *Service) *PhotoSequencesService {
rs := &PhotoSequencesService{s: s}
return rs
}
type PhotoSequencesService struct {
s *Service
}
func NewPhotosService(s *Service) *PhotosService {
rs := &PhotosService{s: s}
return rs
}
type PhotosService struct {
s *Service
}
// BatchDeletePhotosRequest: Request to delete multiple Photos.
type BatchDeletePhotosRequest struct {
// PhotoIds: Required. IDs of the Photos. HTTP GET requests require the
// following syntax for the URL query parameter: `photoIds=&photoIds=&...`.
PhotoIds []string `json:"photoIds,omitempty"`
// ForceSendFields is a list of field names (e.g. "PhotoIds") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "PhotoIds") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchDeletePhotosRequest) MarshalJSON() ([]byte, error) {
type NoMethod BatchDeletePhotosRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchDeletePhotosResponse: Response to batch delete of one or more Photos.
type BatchDeletePhotosResponse struct {
// Status: The status for the operation to delete a single Photo in the batch
// request.
Status []*Status `json:"status,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Status") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Status") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchDeletePhotosResponse) MarshalJSON() ([]byte, error) {
type NoMethod BatchDeletePhotosResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchGetPhotosResponse: Response to batch get of Photos.
type BatchGetPhotosResponse struct {
// Results: List of results for each individual Photo requested, in the same
// order as the requests in BatchGetPhotos.
Results []*PhotoResponse `json:"results,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Results") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchGetPhotosResponse) MarshalJSON() ([]byte, error) {
type NoMethod BatchGetPhotosResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchUpdatePhotosRequest: Request to update the metadata of photos. Updating
// the pixels of photos is not supported.
type BatchUpdatePhotosRequest struct {
// UpdatePhotoRequests: Required. List of UpdatePhotoRequests.
UpdatePhotoRequests []*UpdatePhotoRequest `json:"updatePhotoRequests,omitempty"`
// ForceSendFields is a list of field names (e.g. "UpdatePhotoRequests") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "UpdatePhotoRequests") to include
// in API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchUpdatePhotosRequest) MarshalJSON() ([]byte, error) {
type NoMethod BatchUpdatePhotosRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchUpdatePhotosResponse: Response to batch update of metadata of one or
// more Photos.
type BatchUpdatePhotosResponse struct {
// Results: List of results for each individual Photo updated, in the same
// order as the request.
Results []*PhotoResponse `json:"results,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Results") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchUpdatePhotosResponse) MarshalJSON() ([]byte, error) {
type NoMethod BatchUpdatePhotosResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Connection: A connection is the link from a source photo to a destination
// photo.
type Connection struct {
// Target: Required. The destination of the connection from the containing
// photo to another photo.
Target *PhotoId `json:"target,omitempty"`
// ForceSendFields is a list of field names (e.g. "Target") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Target") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Connection) MarshalJSON() ([]byte, error) {
type NoMethod Connection
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Empty: A generic empty message that you can re-use to avoid defining
// duplicated empty messages in your APIs. A typical example is to use it as
// the request or the response type of an API method. For instance: service Foo
// { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
type Empty struct {
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
}
// GpsDataGapFailureDetails: Details related to
// ProcessingFailureReason#GPS_DATA_GAP. If there are multiple GPS data gaps,
// only the one with the largest duration is reported here.
type GpsDataGapFailureDetails struct {
// GapDuration: The duration of the gap in GPS data that was found.
GapDuration string `json:"gapDuration,omitempty"`
// GapStartTime: Relative time (from the start of the video stream) when the
// gap started.
GapStartTime string `json:"gapStartTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "GapDuration") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "GapDuration") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GpsDataGapFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod GpsDataGapFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Imu: IMU data from the device sensors.
type Imu struct {
// AccelMpsps: The accelerometer measurements in meters/sec^2 with increasing
// timestamps from devices.
AccelMpsps []*Measurement3d `json:"accelMpsps,omitempty"`
// GyroRps: The gyroscope measurements in radians/sec with increasing
// timestamps from devices.
GyroRps []*Measurement3d `json:"gyroRps,omitempty"`
// MagUt: The magnetometer measurements of the magnetic field in microtesla
// (uT) with increasing timestamps from devices.
MagUt []*Measurement3d `json:"magUt,omitempty"`
// ForceSendFields is a list of field names (e.g. "AccelMpsps") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AccelMpsps") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Imu) MarshalJSON() ([]byte, error) {
type NoMethod Imu
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ImuDataGapFailureDetails: Details related to
// ProcessingFailureReason#IMU_DATA_GAP. If there are multiple IMU data gaps,
// only the one with the largest duration is reported here.
type ImuDataGapFailureDetails struct {
// GapDuration: The duration of the gap in IMU data that was found.
GapDuration string `json:"gapDuration,omitempty"`
// GapStartTime: Relative time (from the start of the video stream) when the
// gap started.
GapStartTime string `json:"gapStartTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "GapDuration") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "GapDuration") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ImuDataGapFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod ImuDataGapFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// InsufficientGpsFailureDetails: Details related to
// ProcessingFailureReason#INSUFFICIENT_GPS.
type InsufficientGpsFailureDetails struct {
// GpsPointsFound: The number of GPS points that were found in the video.
GpsPointsFound int64 `json:"gpsPointsFound,omitempty"`
// ForceSendFields is a list of field names (e.g. "GpsPointsFound") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "GpsPointsFound") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s InsufficientGpsFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod InsufficientGpsFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// LatLng: An object that represents a latitude/longitude pair. This is
// expressed as a pair of doubles to represent degrees latitude and degrees
// longitude. Unless specified otherwise, this object must conform to the WGS84
// standard. Values must be within normalized ranges.
type LatLng struct {
// Latitude: The latitude in degrees. It must be in the range [-90.0, +90.0].
Latitude float64 `json:"latitude,omitempty"`
// Longitude: The longitude in degrees. It must be in the range [-180.0,
// +180.0].
Longitude float64 `json:"longitude,omitempty"`
// ForceSendFields is a list of field names (e.g. "Latitude") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Latitude") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s LatLng) MarshalJSON() ([]byte, error) {
type NoMethod LatLng
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *LatLng) UnmarshalJSON(data []byte) error {
type NoMethod LatLng
var s1 struct {
Latitude gensupport.JSONFloat64 `json:"latitude"`
Longitude gensupport.JSONFloat64 `json:"longitude"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.Latitude = float64(s1.Latitude)
s.Longitude = float64(s1.Longitude)
return nil
}
// LatLngBounds: A rectangle in geographical coordinates.
type LatLngBounds struct {
// Northeast: The northeast corner of these bounds.
Northeast *LatLng `json:"northeast,omitempty"`
// Southwest: The southwest corner of these bounds.
Southwest *LatLng `json:"southwest,omitempty"`
// ForceSendFields is a list of field names (e.g. "Northeast") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Northeast") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s LatLngBounds) MarshalJSON() ([]byte, error) {
type NoMethod LatLngBounds
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Level: Level information containing level number and its corresponding name.
type Level struct {
// Name: Required. A name assigned to this Level, restricted to 3 characters.
// Consider how the elevator buttons would be labeled for this level if there
// was an elevator.
Name string `json:"name,omitempty"`
// Number: Optional. Floor number, used for ordering. 0 indicates the ground
// level, 1 indicates the first level above ground level, -1 indicates the
// first level under ground level. Non-integer values are OK.
Number float64 `json:"number,omitempty"`
// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Name") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Level) MarshalJSON() ([]byte, error) {
type NoMethod Level
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *Level) UnmarshalJSON(data []byte) error {
type NoMethod Level
var s1 struct {
Number gensupport.JSONFloat64 `json:"number"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.Number = float64(s1.Number)
return nil
}
// ListPhotoSequencesResponse: Response to list all photo sequences that belong
// to a user.
type ListPhotoSequencesResponse struct {
// NextPageToken: Token to retrieve the next page of results, or empty if there
// are no more results in the list.
NextPageToken string `json:"nextPageToken,omitempty"`
// PhotoSequences: List of photo sequences via Operation interface. The maximum
// number of items returned is based on the pageSize field in the request. Each
// item in the list can have three possible states, * `Operation.done` = false,
// if the processing of PhotoSequence is not finished yet. * `Operation.done` =
// true and `Operation.error` is populated, if there was an error in
// processing. * `Operation.done` = true and `Operation.response` contains a
// PhotoSequence message, In each sequence, only Id is populated.
PhotoSequences []*Operation `json:"photoSequences,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "NextPageToken") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NextPageToken") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ListPhotoSequencesResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListPhotoSequencesResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ListPhotosResponse: Response to list all photos that belong to a user.
type ListPhotosResponse struct {
// NextPageToken: Token to retrieve the next page of results, or empty if there
// are no more results in the list.
NextPageToken string `json:"nextPageToken,omitempty"`
// Photos: List of photos. The pageSize field in the request determines the
// number of items returned.
Photos []*Photo `json:"photos,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "NextPageToken") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NextPageToken") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ListPhotosResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListPhotosResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Measurement3d: A Generic 3d measurement sample.
type Measurement3d struct {
// CaptureTime: The timestamp of the IMU measurement.
CaptureTime string `json:"captureTime,omitempty"`
// X: The sensor measurement in the x axis.
X float64 `json:"x,omitempty"`
// Y: The sensor measurement in the y axis.
Y float64 `json:"y,omitempty"`
// Z: The sensor measurement in the z axis.
Z float64 `json:"z,omitempty"`
// ForceSendFields is a list of field names (e.g. "CaptureTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CaptureTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Measurement3d) MarshalJSON() ([]byte, error) {
type NoMethod Measurement3d
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *Measurement3d) UnmarshalJSON(data []byte) error {
type NoMethod Measurement3d
var s1 struct {
X gensupport.JSONFloat64 `json:"x"`
Y gensupport.JSONFloat64 `json:"y"`
Z gensupport.JSONFloat64 `json:"z"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.X = float64(s1.X)
s.Y = float64(s1.Y)
s.Z = float64(s1.Z)
return nil
}
// NoOverlapGpsFailureDetails: Details related to
// PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.
type NoOverlapGpsFailureDetails struct {
// GpsEndTime: Time of last recorded GPS point.
GpsEndTime string `json:"gpsEndTime,omitempty"`
// GpsStartTime: Time of first recorded GPS point.
GpsStartTime string `json:"gpsStartTime,omitempty"`
// VideoEndTime: End time of video.
VideoEndTime string `json:"videoEndTime,omitempty"`
// VideoStartTime: Start time of video.
VideoStartTime string `json:"videoStartTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "GpsEndTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "GpsEndTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s NoOverlapGpsFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod NoOverlapGpsFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// NotOutdoorsFailureDetails: Details related to
// ProcessingFailureReason#NOT_OUTDOORS. If there are multiple indoor frames
// found, the first frame is recorded here.
type NotOutdoorsFailureDetails struct {
// StartTime: Relative time (from the start of the video stream) when an indoor
// frame was found.
StartTime string `json:"startTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "StartTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "StartTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s NotOutdoorsFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod NotOutdoorsFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Operation: This resource represents a long-running operation that is the
// result of a network API call.
type Operation struct {
// Done: If the value is `false`, it means the operation is still in progress.
// If `true`, the operation is completed, and either `error` or `response` is
// available.
Done bool `json:"done,omitempty"`
// Error: The error result of the operation in case of failure or cancellation.
Error *Status `json:"error,omitempty"`
// Metadata: Service-specific metadata associated with the operation. It
// typically contains progress information and common metadata such as create
// time. Some services might not provide such metadata. Any method that returns
// a long-running operation should document the metadata type, if any.
Metadata googleapi.RawMessage `json:"metadata,omitempty"`
// Name: The server-assigned name, which is only unique within the same service
// that originally returns it. If you use the default HTTP mapping, the `name`
// should be a resource name ending with `operations/{unique_id}`.
Name string `json:"name,omitempty"`
// Response: The normal, successful response of the operation. If the original
// method returns no data on success, such as `Delete`, the response is
// `google.protobuf.Empty`. If the original method is standard
// `Get`/`Create`/`Update`, the response should be the resource. For other
// methods, the response should have the type `XxxResponse`, where `Xxx` is the
// original method name. For example, if the original method name is
// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
Response googleapi.RawMessage `json:"response,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Done") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Operation) MarshalJSON() ([]byte, error) {
type NoMethod Operation
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Photo: Photo is used to store 360 photos along with photo metadata.
type Photo struct {
// CaptureTime: Optional. Absolute time when the photo was captured. When the
// photo has no exif timestamp, this is used to set a timestamp in the photo
// metadata.
CaptureTime string `json:"captureTime,omitempty"`
// Connections: Optional. Connections to other photos. A connection represents
// the link from this photo to another photo.
Connections []*Connection `json:"connections,omitempty"`
// DownloadUrl: Output only. The download URL for the photo bytes. This field
// is set only when GetPhotoRequest.view is set to
// PhotoView.INCLUDE_DOWNLOAD_URL.
DownloadUrl string `json:"downloadUrl,omitempty"`
// MapsPublishStatus: Output only. Status in Google Maps, whether this photo
// was published or rejected.
//
// Possible values:
// "UNSPECIFIED_MAPS_PUBLISH_STATUS" - The status of the photo is unknown.
// "PUBLISHED" - The photo is published to the public through Google Maps.
// "REJECTED_UNKNOWN" - The photo has been rejected for an unknown reason.
MapsPublishStatus string `json:"mapsPublishStatus,omitempty"`
// PhotoId: Required. Output only. Required when updating a photo. Output only
// when creating a photo. Identifier for the photo, which is unique among all
// photos in Google.
PhotoId *PhotoId `json:"photoId,omitempty"`
// Places: Optional. Places where this photo belongs.
Places []*Place `json:"places,omitempty"`
// Pose: Optional. Pose of the photo.
Pose *Pose `json:"pose,omitempty"`
// ShareLink: Output only. The share link for the photo.
ShareLink string `json:"shareLink,omitempty"`
// ThumbnailUrl: Output only. The thumbnail URL for showing a preview of the
// given photo.
ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
// TransferStatus: Output only. Status of rights transfer on this photo.
//
// Possible values:
// "TRANSFER_STATUS_UNKNOWN" - The status of this transfer is unspecified.
// "NEVER_TRANSFERRED" - This photo has never been in a transfer.
// "PENDING" - This photo transfer has been initiated, but the receiver has
// not yet responded.
// "COMPLETED" - The photo transfer has been completed, and this photo has
// been transferred to the recipient.
// "REJECTED" - The recipient rejected this photo transfer.
// "EXPIRED" - The photo transfer expired before the recipient took any
// action.
// "CANCELLED" - The sender cancelled this photo transfer.
// "RECEIVED_VIA_TRANSFER" - The recipient owns this photo due to a rights
// transfer.
TransferStatus string `json:"transferStatus,omitempty"`
// UploadReference: Input only. Required when creating a photo. Input only. The
// resource URL where the photo bytes are uploaded to.
UploadReference *UploadRef `json:"uploadReference,omitempty"`
// UploadTime: Output only. Time when the image was uploaded.
UploadTime string `json:"uploadTime,omitempty"`
// ViewCount: Output only. View count of the photo.
ViewCount int64 `json:"viewCount,omitempty,string"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "CaptureTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CaptureTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Photo) MarshalJSON() ([]byte, error) {
type NoMethod Photo
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// PhotoId: Identifier for a Photo.
type PhotoId struct {
// Id: A unique identifier for a photo.
Id string `json:"id,omitempty"`
// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Id") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s PhotoId) MarshalJSON() ([]byte, error) {
type NoMethod PhotoId
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// PhotoResponse: Response payload for a single Photo in batch operations
// including BatchGetPhotos and BatchUpdatePhotos.
type PhotoResponse struct {
// Photo: The Photo resource, if the request was successful.
Photo *Photo `json:"photo,omitempty"`
// Status: The status for the operation to get or update a single photo in the
// batch request.
Status *Status `json:"status,omitempty"`
// ForceSendFields is a list of field names (e.g. "Photo") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Photo") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s PhotoResponse) MarshalJSON() ([]byte, error) {
type NoMethod PhotoResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// PhotoSequence: A sequence of 360 photos along with metadata.
type PhotoSequence struct {
// CaptureTimeOverride: Optional. Absolute time when the photo sequence starts
// to be captured. If the photo sequence is a video, this is the start time of
// the video. If this field is populated in input, it overrides the capture
// time in the video or XDM file.
CaptureTimeOverride string `json:"captureTimeOverride,omitempty"`
// DistanceMeters: Output only. The computed distance of the photo sequence in
// meters.
DistanceMeters float64 `json:"distanceMeters,omitempty"`
// FailureDetails: Output only. If this sequence has `failure_reason` set, this
// may contain additional details about the failure.
FailureDetails *ProcessingFailureDetails `json:"failureDetails,omitempty"`
// FailureReason: Output only. If this sequence has processing_state = FAILED,
// this will contain the reason why it failed. If the processing_state is any
// other value, this field will be unset.
//
// Possible values:
// "PROCESSING_FAILURE_REASON_UNSPECIFIED" - The failure reason is
// unspecified, this is the default value.
// "LOW_RESOLUTION" - Video frame's resolution is too small.
// "DUPLICATE" - This video has been uploaded before.
// "INSUFFICIENT_GPS" - Too few GPS points.
// "NO_OVERLAP_GPS" - No overlap between the time frame of GPS track and the
// time frame of video.
// "INVALID_GPS" - GPS is invalid (e.x. all GPS points are at (0,0))
// "FAILED_TO_REFINE_POSITIONS" - The sequence of photos could not be
// accurately located in the world.
// "TAKEDOWN" - The sequence was taken down for policy reasons.
// "CORRUPT_VIDEO" - The video file was corrupt or could not be decoded.
// "INTERNAL" - A permanent failure in the underlying system occurred.
// "INVALID_VIDEO_FORMAT" - The video format is invalid or unsupported.
// "INVALID_VIDEO_DIMENSIONS" - Invalid image aspect ratio found.
// "INVALID_CAPTURE_TIME" - Invalid capture time. Timestamps were from the
// future.
// "GPS_DATA_GAP" - GPS data contains a gap greater than 5 seconds in
// duration.
// "JUMPY_GPS" - GPS data is too erratic to be processed.
// "INVALID_IMU" - IMU (Accelerometer, Gyroscope, etc.) data are not valid.
// They may be missing required fields (x, y, z or time), may not be formatted
// correctly, or any other issue that prevents our systems from parsing it.
// "INSUFFICIENT_IMU" - Too few IMU points.
// "INSUFFICIENT_OVERLAP_TIME_SERIES" - Insufficient overlap in the time
// frame between GPS, IMU, and other time series data.
// "IMU_DATA_GAP" - IMU (Accelerometer, Gyroscope, etc.) data contain gaps
// greater than 0.1 seconds in duration.
// "UNSUPPORTED_CAMERA" - The camera is not supported.
// "NOT_OUTDOORS" - Some frames were indoors, which is unsupported.
// "INSUFFICIENT_VIDEO_FRAMES" - Not enough video frames.
// "INSUFFICIENT_MOVEMENT" - Not enough moving data.
// "MAST_DOWN" - Mast is down.
// "CAMERA_COVERED" - Camera is covered.
FailureReason string `json:"failureReason,omitempty"`
// Filename: Output only. The filename of the upload. Does not include the
// directory path. Only available if the sequence was uploaded on a platform
// that provides the filename.
Filename string `json:"filename,omitempty"`
// GpsSource: Input only. If both raw_gps_timeline and the Camera Motion
// Metadata Track (CAMM) contain GPS measurements, indicate which takes
// precedence.
//
// Possible values:
// "PHOTO_SEQUENCE" - GPS in raw_gps_timeline takes precedence if it exists.
// "CAMERA_MOTION_METADATA_TRACK" - GPS in Camera Motion Metadata Track
// (CAMM) takes precedence if it exists.
GpsSource string `json:"gpsSource,omitempty"`
// Id: Output only. Unique identifier for the photo sequence. This also acts as
// a long running operation ID if uploading is performed asynchronously.
Id string `json:"id,omitempty"`
// Imu: Input only. Three axis IMU data for the collection. If this data is too
// large to put in the request, then it should be put in the CAMM track for the
// video. This data always takes precedence over the equivalent CAMM data, if
// it exists.
Imu *Imu `json:"imu,omitempty"`
// Photos: Output only. Photos with increasing timestamps.
Photos []*Photo `json:"photos,omitempty"`
// ProcessingState: Output only. The processing state of this sequence.
//
// Possible values:
// "PROCESSING_STATE_UNSPECIFIED" - The state is unspecified, this is the
// default value.
// "PENDING" - The sequence has not yet started processing.
// "PROCESSING" - The sequence is currently in processing.
// "PROCESSED" - The sequence has finished processing including refining
// position.
// "FAILED" - The sequence failed processing. See FailureReason for more
// details.
ProcessingState string `json:"processingState,omitempty"`
// RawGpsTimeline: Input only. Raw GPS measurements with increasing timestamps
// from the device that aren't time synced with each photo. These raw
// measurements will be used to infer the pose of each frame. Required in input
// when InputType is VIDEO and raw GPS measurements are not in Camera Motion
// Metadata Track (CAMM). User can indicate which takes precedence using
// gps_source if raw GPS measurements are provided in both raw_gps_timeline and
// Camera Motion Metadata Track (CAMM).
RawGpsTimeline []*Pose `json:"rawGpsTimeline,omitempty"`
// SequenceBounds: Output only. A rectangular box that encapsulates every image
// in this photo sequence.
SequenceBounds *LatLngBounds `json:"sequenceBounds,omitempty"`
// UploadReference: Input only. Required when creating photo sequence. The
// resource name where the bytes of the photo sequence (in the form of video)
// are uploaded.
UploadReference *UploadRef `json:"uploadReference,omitempty"`
// UploadTime: Output only. The time this photo sequence was created in uSV
// Store service.
UploadTime string `json:"uploadTime,omitempty"`
// ViewCount: Output only. The total number of views that all the published
// images in this PhotoSequence have received.
ViewCount int64 `json:"viewCount,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "CaptureTimeOverride") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CaptureTimeOverride") to include
// in API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s PhotoSequence) MarshalJSON() ([]byte, error) {
type NoMethod PhotoSequence
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *PhotoSequence) UnmarshalJSON(data []byte) error {
type NoMethod PhotoSequence
var s1 struct {
DistanceMeters gensupport.JSONFloat64 `json:"distanceMeters"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.DistanceMeters = float64(s1.DistanceMeters)
return nil
}
// Place: Place metadata for an entity.
type Place struct {
// LanguageCode: Output only. The language_code that the name is localized
// with. This should be the language_code specified in the request, but may be
// a fallback.
LanguageCode string `json:"languageCode,omitempty"`
// Name: Output only. The name of the place, localized to the language_code.
Name string `json:"name,omitempty"`
// PlaceId: Place identifier, as described in
// https://developers.google.com/places/place-id.
PlaceId string `json:"placeId,omitempty"`
// ForceSendFields is a list of field names (e.g. "LanguageCode") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "LanguageCode") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Place) MarshalJSON() ([]byte, error) {
type NoMethod Place
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Pose: Raw pose measurement for an entity.
type Pose struct {
// AccuracyMeters: The estimated horizontal accuracy of this pose in meters
// with 68% confidence (one standard deviation). For example, on Android, this
// value is available from this method:
// https://developer.android.com/reference/android/location/Location#getAccuracy().
// Other platforms have different methods of obtaining similar accuracy
// estimations.
AccuracyMeters float64 `json:"accuracyMeters,omitempty"`
// Altitude: Altitude of the pose in meters above WGS84 ellipsoid. NaN
// indicates an unmeasured quantity.
Altitude float64 `json:"altitude,omitempty"`
// GpsRecordTimestampUnixEpoch: Time of the GPS record since UTC epoch.
GpsRecordTimestampUnixEpoch string `json:"gpsRecordTimestampUnixEpoch,omitempty"`
// Heading: The following pose parameters pertain to the center of the photo.
// They match https://developers.google.com/streetview/spherical-metadata.
// Compass heading, measured at the center of the photo in degrees clockwise
// from North. Value must be >=0 and <360. NaN indicates an unmeasured
// quantity.
Heading float64 `json:"heading,omitempty"`
// LatLngPair: Latitude and longitude pair of the pose, as explained here:
// https://cloud.google.com/datastore/docs/reference/rest/Shared.Types/LatLng
// When creating a Photo, if the latitude and longitude pair are not provided,
// the geolocation from the exif header is used. A latitude and longitude pair
// not provided in the photo or exif header causes the photo process to fail.
LatLngPair *LatLng `json:"latLngPair,omitempty"`
// Level: Level (the floor in a building) used to configure vertical
// navigation.
Level *Level `json:"level,omitempty"`
// Pitch: Pitch, measured at the center of the photo in degrees. Value must be
// >=-90 and <= 90. A value of -90 means looking directly down, and a value of
// 90 means looking directly up. NaN indicates an unmeasured quantity.
Pitch float64 `json:"pitch,omitempty"`
// Roll: Roll, measured in degrees. Value must be >= 0 and <360. A value of 0
// means level with the horizon. NaN indicates an unmeasured quantity.
Roll float64 `json:"roll,omitempty"`
// ForceSendFields is a list of field names (e.g. "AccuracyMeters") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AccuracyMeters") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Pose) MarshalJSON() ([]byte, error) {
type NoMethod Pose
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *Pose) UnmarshalJSON(data []byte) error {
type NoMethod Pose
var s1 struct {
AccuracyMeters gensupport.JSONFloat64 `json:"accuracyMeters"`
Altitude gensupport.JSONFloat64 `json:"altitude"`
Heading gensupport.JSONFloat64 `json:"heading"`
Pitch gensupport.JSONFloat64 `json:"pitch"`
Roll gensupport.JSONFloat64 `json:"roll"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.AccuracyMeters = float64(s1.AccuracyMeters)
s.Altitude = float64(s1.Altitude)
s.Heading = float64(s1.Heading)
s.Pitch = float64(s1.Pitch)
s.Roll = float64(s1.Roll)
return nil
}
// ProcessingFailureDetails: Additional details to accompany the
// ProcessingFailureReason enum. This message is always expected to be used in
// conjunction with ProcessingFailureReason, and the oneof value set in this
// message should match the FailureReason.
type ProcessingFailureDetails struct {
// GpsDataGapDetails: See GpsDataGapFailureDetails.
GpsDataGapDetails *GpsDataGapFailureDetails `json:"gpsDataGapDetails,omitempty"`
// ImuDataGapDetails: See ImuDataGapFailureDetails.
ImuDataGapDetails *ImuDataGapFailureDetails `json:"imuDataGapDetails,omitempty"`
// InsufficientGpsDetails: See InsufficientGpsFailureDetails.
InsufficientGpsDetails *InsufficientGpsFailureDetails `json:"insufficientGpsDetails,omitempty"`
// NoOverlapGpsDetails: See NoOverlapGpsFailureDetails.
NoOverlapGpsDetails *NoOverlapGpsFailureDetails `json:"noOverlapGpsDetails,omitempty"`
// NotOutdoorsDetails: See NotOutdoorsFailureDetails.
NotOutdoorsDetails *NotOutdoorsFailureDetails `json:"notOutdoorsDetails,omitempty"`
// ForceSendFields is a list of field names (e.g. "GpsDataGapDetails") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "GpsDataGapDetails") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ProcessingFailureDetails) MarshalJSON() ([]byte, error) {
type NoMethod ProcessingFailureDetails
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Status: The `Status` type defines a logical error model that is suitable for
// different programming environments, including REST APIs and RPC APIs. It is
// used by gRPC (https://github.com/grpc). Each `Status` message contains three
// pieces of data: error code, error message, and error details. You can find
// out more about this error model and how to work with it in the API Design
// Guide (https://cloud.google.com/apis/design/errors).
type Status struct {
// Code: The status code, which should be an enum value of google.rpc.Code.
Code int64 `json:"code,omitempty"`
// Details: A list of messages that carry the error details. There is a common
// set of message types for APIs to use.
Details []googleapi.RawMessage `json:"details,omitempty"`
// Message: A developer-facing error message, which should be in English. Any
// user-facing error message should be localized and sent in the
// google.rpc.Status.details field, or localized by the client.
Message string `json:"message,omitempty"`
// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Code") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Status) MarshalJSON() ([]byte, error) {
type NoMethod Status
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// UpdatePhotoRequest: Request to update the metadata of a Photo. Updating the
// pixels of a photo is not supported.
type UpdatePhotoRequest struct {
// Photo: Required. Photo object containing the new metadata.
Photo *Photo `json:"photo,omitempty"`
// UpdateMask: Required. Mask that identifies fields on the photo metadata to
// update. If not present, the old Photo metadata is entirely replaced with the
// new Photo metadata in this request. The update fails if invalid fields are
// specified. Multiple fields can be specified in a comma-delimited list. The
// following fields are valid: * `pose.heading` * `pose.lat_lng_pair` *
// `pose.pitch` * `pose.roll` * `pose.level` * `pose.altitude` * `connections`
// * `places` > Note: When updateMask contains repeated fields, the entire set
// of repeated values get replaced with the new contents. For example, if
// updateMask contains `connections` and `UpdatePhotoRequest.photo.connections`
// is empty, all connections are removed.
UpdateMask string `json:"updateMask,omitempty"`
// ForceSendFields is a list of field names (e.g. "Photo") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Photo") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s UpdatePhotoRequest) MarshalJSON() ([]byte, error) {
type NoMethod UpdatePhotoRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// UploadRef: Upload reference for media files.
type UploadRef struct {
// UploadUrl: An upload reference should be unique for each user. It follows
// the form:
// "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{uplo
// ad_reference}"
UploadUrl string `json:"uploadUrl,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "UploadUrl") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "UploadUrl") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s UploadRef) MarshalJSON() ([]byte, error) {
type NoMethod UploadRef
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
type PhotoCreateCall struct {
s *Service
photo *Photo
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Create: After the client finishes uploading the photo with the returned
// UploadRef, CreatePhoto publishes the uploaded 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 if the request is
// malformed or if the uploaded photo is not a 360 photo. *
// google.rpc.Code.NOT_FOUND if the upload reference does not exist. *
// google.rpc.Code.RESOURCE_EXHAUSTED if the account has reached the storage
// limit.
func (r *PhotoService) Create(photo *Photo) *PhotoCreateCall {
c := &PhotoCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.photo = photo
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoCreateCall) Fields(s ...googleapi.Field) *PhotoCreateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoCreateCall) Context(ctx context.Context) *PhotoCreateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoCreateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoCreateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.photo)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photo")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photo.create", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photo.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Photo.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoCreateCall) Do(opts ...googleapi.CallOption) (*Photo, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Photo{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photo.create", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoDeleteCall struct {
s *Service
photoId string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Delete: Deletes a Photo and its metadata. This method returns the following
// error codes: * google.rpc.Code.PERMISSION_DENIED if the requesting user did
// not create the requested photo. * google.rpc.Code.NOT_FOUND if the photo ID
// does not exist.
//
// - photoId: ID of the Photo.
func (r *PhotoService) Delete(photoId string) *PhotoDeleteCall {
c := &PhotoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.photoId = photoId
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoDeleteCall) Fields(s ...googleapi.Field) *PhotoDeleteCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoDeleteCall) Context(ctx context.Context) *PhotoDeleteCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoDeleteCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoDeleteCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photo/{photoId}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("DELETE", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"photoId": c.photoId,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photo.delete", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photo.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Empty{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photo.delete", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoGetCall struct {
s *Service
photoId string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// Get: Gets the metadata of the specified Photo. This method returns the
// following error codes: * google.rpc.Code.PERMISSION_DENIED if the requesting
// user did not create the requested Photo. * google.rpc.Code.NOT_FOUND if the
// requested Photo does not exist. * google.rpc.Code.UNAVAILABLE if the
// requested Photo is still being indexed.
//
// - photoId: ID of the Photo.
func (r *PhotoService) Get(photoId string) *PhotoGetCall {
c := &PhotoGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.photoId = photoId
return c
}
// LanguageCode sets the optional parameter "languageCode": The BCP-47 language
// code, such as "en-US" or "sr-Latn". For more information, see
// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If
// language_code is unspecified, the user's language preference for Google
// services is used.
func (c *PhotoGetCall) LanguageCode(languageCode string) *PhotoGetCall {
c.urlParams_.Set("languageCode", languageCode)
return c
}
// View sets the optional parameter "view": Required. Specifies if a download
// URL for the photo bytes should be returned in the Photo response.
//
// Possible values:
//
// "BASIC" - Server responses do not include the download URL for the photo
//
// bytes. The default value.
//
// "INCLUDE_DOWNLOAD_URL" - Server responses include the download URL for the
//
// photo bytes.
func (c *PhotoGetCall) View(view string) *PhotoGetCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoGetCall) Fields(s ...googleapi.Field) *PhotoGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *PhotoGetCall) IfNoneMatch(entityTag string) *PhotoGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoGetCall) Context(ctx context.Context) *PhotoGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photo/{photoId}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"photoId": c.photoId,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photo.get", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photo.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Photo.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoGetCall) Do(opts ...googleapi.CallOption) (*Photo, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Photo{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photo.get", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoStartUploadCall struct {
s *Service
empty *Empty
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// StartUpload: Creates an upload session to start uploading photo bytes. The
// method uses the upload URL of the returned UploadRef to upload the bytes for
// the Photo. In addition to the photo requirements shown in
// https://support.google.com/maps/answer/7012050?ref_topic=6275604, the photo
// must meet the following requirements: * Photo Sphere XMP metadata must be
// included in the photo metadata. 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?ref_topic=6275604, and the
// photo must be a full 360 horizontally. After the upload completes, the
// method uses UploadRef with CreatePhoto to create the Photo object entry.
func (r *PhotoService) StartUpload(empty *Empty) *PhotoStartUploadCall {
c := &PhotoStartUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.empty = empty
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoStartUploadCall) Fields(s ...googleapi.Field) *PhotoStartUploadCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoStartUploadCall) Context(ctx context.Context) *PhotoStartUploadCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoStartUploadCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoStartUploadCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.empty)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photo:startUpload")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photo.startUpload", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photo.startUpload" call.
// Any non-2xx status code is an error. Response headers are in either
// *UploadRef.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoStartUploadCall) Do(opts ...googleapi.CallOption) (*UploadRef, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &UploadRef{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photo.startUpload", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoUpdateCall struct {
s *Service
id string
photo *Photo
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Update: Updates the metadata of a Photo, such as pose, place association,
// connections, etc. Changing the pixels of a photo is not supported. Only the
// fields specified in the updateMask 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 if the requesting user did
// not create the requested photo. * google.rpc.Code.INVALID_ARGUMENT if the
// request is malformed. * google.rpc.Code.NOT_FOUND if the requested photo
// does not exist. * google.rpc.Code.UNAVAILABLE if the requested Photo is
// still being indexed.
//
// - id: A unique identifier for a photo.
func (r *PhotoService) Update(id string, photo *Photo) *PhotoUpdateCall {
c := &PhotoUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.id = id
c.photo = photo
return c
}
// UpdateMask sets the optional parameter "updateMask": Required. Mask that
// identifies fields on the photo metadata to update. If not present, the old
// Photo metadata is entirely replaced with the new Photo metadata in this
// request. The update fails if invalid fields are specified. Multiple fields
// can be specified in a comma-delimited list. The following fields are valid:
// * `pose.heading` * `pose.lat_lng_pair` * `pose.pitch` * `pose.roll` *
// `pose.level` * `pose.altitude` * `connections` * `places` > Note: When
// updateMask contains repeated fields, the entire set of repeated values get
// replaced with the new contents. For example, if updateMask contains
// `connections` and `UpdatePhotoRequest.photo.connections` is empty, all
// connections are removed.
func (c *PhotoUpdateCall) UpdateMask(updateMask string) *PhotoUpdateCall {
c.urlParams_.Set("updateMask", updateMask)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoUpdateCall) Fields(s ...googleapi.Field) *PhotoUpdateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoUpdateCall) Context(ctx context.Context) *PhotoUpdateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoUpdateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoUpdateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.photo)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photo/{id}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("PUT", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"id": c.id,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photo.update", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photo.update" call.
// Any non-2xx status code is an error. Response headers are in either
// *Photo.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoUpdateCall) Do(opts ...googleapi.CallOption) (*Photo, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Photo{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photo.update", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoSequenceCreateCall struct {
s *Service
photosequence *PhotoSequence
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Create: After the client finishes uploading the PhotoSequence with the
// returned UploadRef, CreatePhotoSequence extracts a sequence of 360 photos
// from a video or Extensible Device Metadata (XDM, http://www.xdm.org/) to be
// published to Street View on Google Maps. `CreatePhotoSequence` returns an
// Operation, with the PhotoSequence Id set in the `Operation.name` field. This
// method returns the following error codes: * google.rpc.Code.INVALID_ARGUMENT
// if the request is malformed. * google.rpc.Code.NOT_FOUND if the upload
// reference does not exist.
func (r *PhotoSequenceService) Create(photosequence *PhotoSequence) *PhotoSequenceCreateCall {
c := &PhotoSequenceCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.photosequence = photosequence
return c
}
// InputType sets the optional parameter "inputType": Required. The input form
// of PhotoSequence.
//
// Possible values:
//
// "INPUT_TYPE_UNSPECIFIED" - Not specified. Server will return
//
// google.rpc.Code.INVALID_ARGUMENT.
//
// "VIDEO" - 360 Video.
// "XDM" - Extensible Device Metadata, http://www.xdm.org
func (c *PhotoSequenceCreateCall) InputType(inputType string) *PhotoSequenceCreateCall {
c.urlParams_.Set("inputType", inputType)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoSequenceCreateCall) Fields(s ...googleapi.Field) *PhotoSequenceCreateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoSequenceCreateCall) Context(ctx context.Context) *PhotoSequenceCreateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoSequenceCreateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoSequenceCreateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.photosequence)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photoSequence")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.create", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photoSequence.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoSequenceCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.create", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoSequenceDeleteCall struct {
s *Service
sequenceId string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Delete: Deletes a PhotoSequence and its metadata. This method returns the
// following error codes: * google.rpc.Code.PERMISSION_DENIED if the requesting
// user did not create the requested photo sequence. *
// google.rpc.Code.NOT_FOUND if the photo sequence ID does not exist. *
// google.rpc.Code.FAILED_PRECONDITION if the photo sequence ID is not yet
// finished processing.
//
// - sequenceId: ID of the PhotoSequence.
func (r *PhotoSequenceService) Delete(sequenceId string) *PhotoSequenceDeleteCall {
c := &PhotoSequenceDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.sequenceId = sequenceId
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoSequenceDeleteCall) Fields(s ...googleapi.Field) *PhotoSequenceDeleteCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoSequenceDeleteCall) Context(ctx context.Context) *PhotoSequenceDeleteCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoSequenceDeleteCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoSequenceDeleteCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photoSequence/{sequenceId}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("DELETE", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"sequenceId": c.sequenceId,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.delete", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photoSequence.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoSequenceDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Empty{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.delete", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoSequenceGetCall struct {
s *Service
sequenceId string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// Get: Gets the metadata of the specified PhotoSequence via the Operation
// interface. This method returns the following three types of responses: *
// `Operation.done` = false, if the processing of PhotoSequence is not finished
// yet. * `Operation.done` = true and `Operation.error` is populated, if there
// was an error in processing. * `Operation.done` = true and
// `Operation.response` is poulated, which contains a PhotoSequence message.
// This method returns the following error codes: *
// google.rpc.Code.PERMISSION_DENIED if the requesting user did not create the
// requested PhotoSequence. * google.rpc.Code.NOT_FOUND if the requested
// PhotoSequence does not exist.
//
// - sequenceId: ID of the photo sequence.
func (r *PhotoSequenceService) Get(sequenceId string) *PhotoSequenceGetCall {
c := &PhotoSequenceGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.sequenceId = sequenceId
return c
}
// Filter sets the optional parameter "filter": The filter expression. For
// example: `published_status=PUBLISHED`. The filters supported are:
// `published_status`. See https://google.aip.dev/160 for more information.
func (c *PhotoSequenceGetCall) Filter(filter string) *PhotoSequenceGetCall {
c.urlParams_.Set("filter", filter)
return c
}
// View sets the optional parameter "view": Specifies if a download URL for the
// photo sequence should be returned in `download_url` of individual photos in
// the PhotoSequence response. > Note: Currently not implemented.
//
// Possible values:
//
// "BASIC" - Server responses do not include the download URL for the photo
//
// bytes. The default value.
//
// "INCLUDE_DOWNLOAD_URL" - Server responses include the download URL for the
//
// photo bytes.
func (c *PhotoSequenceGetCall) View(view string) *PhotoSequenceGetCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoSequenceGetCall) Fields(s ...googleapi.Field) *PhotoSequenceGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *PhotoSequenceGetCall) IfNoneMatch(entityTag string) *PhotoSequenceGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoSequenceGetCall) Context(ctx context.Context) *PhotoSequenceGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoSequenceGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoSequenceGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photoSequence/{sequenceId}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"sequenceId": c.sequenceId,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.get", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photoSequence.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoSequenceGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Operation{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.get", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoSequenceStartUploadCall struct {
s *Service
empty *Empty
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// StartUpload: Creates an upload session to start uploading photo sequence
// data. The upload URL of the returned UploadRef is used to upload the data
// for the `photoSequence`. After the upload is complete, the UploadRef is used
// with CreatePhotoSequence to create the PhotoSequence object entry.
func (r *PhotoSequenceService) StartUpload(empty *Empty) *PhotoSequenceStartUploadCall {
c := &PhotoSequenceStartUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.empty = empty
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoSequenceStartUploadCall) Fields(s ...googleapi.Field) *PhotoSequenceStartUploadCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoSequenceStartUploadCall) Context(ctx context.Context) *PhotoSequenceStartUploadCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoSequenceStartUploadCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoSequenceStartUploadCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.empty)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photoSequence:startUpload")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.startUpload", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photoSequence.startUpload" call.
// Any non-2xx status code is an error. Response headers are in either
// *UploadRef.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *PhotoSequenceStartUploadCall) Do(opts ...googleapi.CallOption) (*UploadRef, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &UploadRef{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequence.startUpload", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotoSequencesListCall struct {
s *Service
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: Lists all the PhotoSequences that belong to the user, in descending
// CreatePhotoSequence timestamp order.
func (r *PhotoSequencesService) List() *PhotoSequencesListCall {
c := &PhotoSequencesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
return c
}
// Filter sets the optional parameter "filter": The filter expression. For
// example: `imagery_type=SPHERICAL`. The filters supported are:
// `imagery_type`, `processing_state`, `min_latitude`, `max_latitude`,
// `min_longitude`, `max_longitude`, `filename_query`,
// `min_capture_time_seconds`, `max_capture_time_seconds. See
// https://google.aip.dev/160 for more information. Filename queries should
// sent as a Phrase in order to support multiple words and special characters
// by adding escaped quotes. Ex: filename_query="example of a phrase.mp4"
func (c *PhotoSequencesListCall) Filter(filter string) *PhotoSequencesListCall {
c.urlParams_.Set("filter", filter)
return c
}
// PageSize sets the optional parameter "pageSize": The maximum number of photo
// sequences to return. `pageSize` must be non-negative. If `pageSize` is zero
// or is not provided, the default page size of 100 is used. The number of
// photo sequences returned in the response may be less than `pageSize` if the
// number of matches is less than `pageSize`. This is currently unimplemented
// but is in process.
func (c *PhotoSequencesListCall) PageSize(pageSize int64) *PhotoSequencesListCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": The nextPageToken value
// returned from a previous ListPhotoSequences request, if any.
func (c *PhotoSequencesListCall) PageToken(pageToken string) *PhotoSequencesListCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotoSequencesListCall) Fields(s ...googleapi.Field) *PhotoSequencesListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *PhotoSequencesListCall) IfNoneMatch(entityTag string) *PhotoSequencesListCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotoSequencesListCall) Context(ctx context.Context) *PhotoSequencesListCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotoSequencesListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotoSequencesListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photoSequences")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequences.list", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photoSequences.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListPhotoSequencesResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *PhotoSequencesListCall) Do(opts ...googleapi.CallOption) (*ListPhotoSequencesResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &ListPhotoSequencesResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photoSequences.list", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *PhotoSequencesListCall) Pages(ctx context.Context, f func(*ListPhotoSequencesResponse) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken"))
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
type PhotosBatchDeleteCall struct {
s *Service
batchdeletephotosrequest *BatchDeletePhotosRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// BatchDelete: Deletes a list of Photos and their metadata. Note that if
// BatchDeletePhotos fails, either critical fields are missing or there is an
// authentication error. Even if BatchDeletePhotos succeeds, individual photos
// in the batch may have failures. These failures are specified in each
// PhotoResponse.status in BatchDeletePhotosResponse.results. See DeletePhoto
// for specific failures that can occur per photo.
func (r *PhotosService) BatchDelete(batchdeletephotosrequest *BatchDeletePhotosRequest) *PhotosBatchDeleteCall {
c := &PhotosBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.batchdeletephotosrequest = batchdeletephotosrequest
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotosBatchDeleteCall) Fields(s ...googleapi.Field) *PhotosBatchDeleteCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotosBatchDeleteCall) Context(ctx context.Context) *PhotosBatchDeleteCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotosBatchDeleteCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotosBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.batchdeletephotosrequest)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photos:batchDelete")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchDelete", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photos.batchDelete" call.
// Any non-2xx status code is an error. Response headers are in either
// *BatchDeletePhotosResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *PhotosBatchDeleteCall) Do(opts ...googleapi.CallOption) (*BatchDeletePhotosResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &BatchDeletePhotosResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchDelete", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotosBatchGetCall struct {
s *Service
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// BatchGet: Gets the metadata of the specified Photo batch. Note that if
// BatchGetPhotos fails, either critical fields are missing or there is an
// authentication error. Even if BatchGetPhotos succeeds, individual photos in
// the batch may have failures. These failures are specified in each
// PhotoResponse.status in BatchGetPhotosResponse.results. See GetPhoto for
// specific failures that can occur per photo.
func (r *PhotosService) BatchGet() *PhotosBatchGetCall {
c := &PhotosBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
return c
}
// LanguageCode sets the optional parameter "languageCode": The BCP-47 language
// code, such as "en-US" or "sr-Latn". For more information, see
// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If
// language_code is unspecified, the user's language preference for Google
// services is used.
func (c *PhotosBatchGetCall) LanguageCode(languageCode string) *PhotosBatchGetCall {
c.urlParams_.Set("languageCode", languageCode)
return c
}
// PhotoIds sets the optional parameter "photoIds": Required. IDs of the
// Photos. For HTTP GET requests, the URL query parameter should be
// `photoIds=&photoIds=&...`.
func (c *PhotosBatchGetCall) PhotoIds(photoIds ...string) *PhotosBatchGetCall {
c.urlParams_.SetMulti("photoIds", append([]string{}, photoIds...))
return c
}
// View sets the optional parameter "view": Required. Specifies if a download
// URL for the photo bytes should be returned in the Photo response.
//
// Possible values:
//
// "BASIC" - Server responses do not include the download URL for the photo
//
// bytes. The default value.
//
// "INCLUDE_DOWNLOAD_URL" - Server responses include the download URL for the
//
// photo bytes.
func (c *PhotosBatchGetCall) View(view string) *PhotosBatchGetCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotosBatchGetCall) Fields(s ...googleapi.Field) *PhotosBatchGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *PhotosBatchGetCall) IfNoneMatch(entityTag string) *PhotosBatchGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotosBatchGetCall) Context(ctx context.Context) *PhotosBatchGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotosBatchGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotosBatchGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photos:batchGet")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchGet", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photos.batchGet" call.
// Any non-2xx status code is an error. Response headers are in either
// *BatchGetPhotosResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *PhotosBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetPhotosResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &BatchGetPhotosResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchGet", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotosBatchUpdateCall struct {
s *Service
batchupdatephotosrequest *BatchUpdatePhotosRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// BatchUpdate: Updates the metadata of Photos, such as pose, place
// association, connections, etc. Changing the pixels of photos is not
// supported. Note that if BatchUpdatePhotos fails, either critical fields are
// missing or there is an authentication error. Even if BatchUpdatePhotos
// succeeds, individual photos in the batch may have failures. These failures
// are specified in each PhotoResponse.status in
// BatchUpdatePhotosResponse.results. See UpdatePhoto for specific failures
// that can occur per photo. Only the fields specified in updateMask field are
// used. If `updateMask` is not present, the update applies to all fields. The
// number of UpdatePhotoRequest messages in a BatchUpdatePhotosRequest must not
// exceed 20. > Note: To update Pose.altitude, Pose.latLngPair has to be filled
// as well. Otherwise, the request will fail.
func (r *PhotosService) BatchUpdate(batchupdatephotosrequest *BatchUpdatePhotosRequest) *PhotosBatchUpdateCall {
c := &PhotosBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.batchupdatephotosrequest = batchupdatephotosrequest
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotosBatchUpdateCall) Fields(s ...googleapi.Field) *PhotosBatchUpdateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotosBatchUpdateCall) Context(ctx context.Context) *PhotosBatchUpdateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotosBatchUpdateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotosBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.batchupdatephotosrequest)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photos:batchUpdate")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchUpdate", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photos.batchUpdate" call.
// Any non-2xx status code is an error. Response headers are in either
// *BatchUpdatePhotosResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *PhotosBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdatePhotosResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &BatchUpdatePhotosResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photos.batchUpdate", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type PhotosListCall struct {
s *Service
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: Lists all the Photos that belong to the user. > Note: Recently created
// photos that are still being indexed are not returned in the response.
func (r *PhotosService) List() *PhotosListCall {
c := &PhotosListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
return c
}
// Filter sets the optional parameter "filter": The filter expression. For
// example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`. The filters supported are:
// `placeId`, `min_latitude`, `max_latitude`, `min_longitude`, `max_longitude`.
// See https://google.aip.dev/160 for more information.
func (c *PhotosListCall) Filter(filter string) *PhotosListCall {
c.urlParams_.Set("filter", filter)
return c
}
// LanguageCode sets the optional parameter "languageCode": The BCP-47 language
// code, such as "en-US" or "sr-Latn". For more information, see
// http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If
// language_code is unspecified, the user's language preference for Google
// services is used.
func (c *PhotosListCall) LanguageCode(languageCode string) *PhotosListCall {
c.urlParams_.Set("languageCode", languageCode)
return c
}
// PageSize sets the optional parameter "pageSize": The maximum number of
// photos to return. `pageSize` must be non-negative. If `pageSize` is zero or
// is not provided, the default page size of 100 is used. The number of photos
// returned in the response may be less than `pageSize` if the number of photos
// that belong to the user is less than `pageSize`.
func (c *PhotosListCall) PageSize(pageSize int64) *PhotosListCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": The nextPageToken value
// returned from a previous ListPhotos request, if any.
func (c *PhotosListCall) PageToken(pageToken string) *PhotosListCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// View sets the optional parameter "view": Required. Specifies if a download
// URL for the photos bytes should be returned in the Photos response.
//
// Possible values:
//
// "BASIC" - Server responses do not include the download URL for the photo
//
// bytes. The default value.
//
// "INCLUDE_DOWNLOAD_URL" - Server responses include the download URL for the
//
// photo bytes.
func (c *PhotosListCall) View(view string) *PhotosListCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *PhotosListCall) Fields(s ...googleapi.Field) *PhotosListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *PhotosListCall) IfNoneMatch(entityTag string) *PhotosListCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *PhotosListCall) Context(ctx context.Context) *PhotosListCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *PhotosListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *PhotosListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1/photos")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "streetviewpublish.photos.list", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "streetviewpublish.photos.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListPhotosResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *PhotosListCall) Do(opts ...googleapi.CallOption) (*ListPhotosResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &ListPhotosResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "streetviewpublish.photos.list", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *PhotosListCall) Pages(ctx context.Context, f func(*ListPhotosResponse) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken"))
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}