823 lines
33 KiB
Go
823 lines
33 KiB
Go
// Package videointelligence provides access to the Google Cloud Video Intelligence API.
|
|
//
|
|
// See https://cloud.google.com/video-intelligence/docs/
|
|
//
|
|
// Usage example:
|
|
//
|
|
// import "google.golang.org/api/videointelligence/v1beta1"
|
|
// ...
|
|
// videointelligenceService, err := videointelligence.New(oauthHttpClient)
|
|
package videointelligence // import "google.golang.org/api/videointelligence/v1beta1"
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
context "golang.org/x/net/context"
|
|
ctxhttp "golang.org/x/net/context/ctxhttp"
|
|
gensupport "google.golang.org/api/gensupport"
|
|
googleapi "google.golang.org/api/googleapi"
|
|
"io"
|
|
"net/http"
|
|
"net/url"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// 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 _ = ctxhttp.Do
|
|
|
|
const apiId = "videointelligence:v1beta1"
|
|
const apiName = "videointelligence"
|
|
const apiVersion = "v1beta1"
|
|
const basePath = "https://videointelligence.googleapis.com/"
|
|
|
|
// OAuth2 scopes used by this API.
|
|
const (
|
|
// View and manage your data across Google Cloud Platform services
|
|
CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
|
|
)
|
|
|
|
func New(client *http.Client) (*Service, error) {
|
|
if client == nil {
|
|
return nil, errors.New("client is nil")
|
|
}
|
|
s := &Service{client: client, BasePath: basePath}
|
|
s.Videos = NewVideosService(s)
|
|
return s, nil
|
|
}
|
|
|
|
type Service struct {
|
|
client *http.Client
|
|
BasePath string // API endpoint base URL
|
|
UserAgent string // optional additional User-Agent fragment
|
|
|
|
Videos *VideosService
|
|
}
|
|
|
|
func (s *Service) userAgent() string {
|
|
if s.UserAgent == "" {
|
|
return googleapi.UserAgent
|
|
}
|
|
return googleapi.UserAgent + " " + s.UserAgent
|
|
}
|
|
|
|
func NewVideosService(s *Service) *VideosService {
|
|
rs := &VideosService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type VideosService struct {
|
|
s *Service
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1AnnotateVideoProgress: Video
|
|
// annotation progress. Included in the `metadata`
|
|
// field of the `Operation` returned by the `GetOperation`
|
|
// call of the `google::longrunning::Operations` service.
|
|
type GoogleCloudVideointelligenceV1beta1AnnotateVideoProgress struct {
|
|
// AnnotationProgress: Progress metadata for all videos specified in
|
|
// `AnnotateVideoRequest`.
|
|
AnnotationProgress []*GoogleCloudVideointelligenceV1beta1VideoAnnotationProgress `json:"annotationProgress,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "AnnotationProgress")
|
|
// to unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "AnnotationProgress") to
|
|
// include in API requests with the JSON null value. By default, fields
|
|
// with empty values are omitted from API requests. However, any field
|
|
// with an empty value appearing in NullFields will be sent to the
|
|
// server as null. It is an error if a field in this list has a
|
|
// non-empty value. This may be used to include null fields in Patch
|
|
// requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1AnnotateVideoProgress) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1AnnotateVideoProgress
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest: Video
|
|
// annotation request.
|
|
type GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest struct {
|
|
// Features: Requested video annotation features.
|
|
//
|
|
// Possible values:
|
|
// "FEATURE_UNSPECIFIED" - Unspecified.
|
|
// "LABEL_DETECTION" - Label detection. Detect objects, such as dog or
|
|
// flower.
|
|
// "SHOT_CHANGE_DETECTION" - Shot change detection.
|
|
Features []string `json:"features,omitempty"`
|
|
|
|
// InputContent: The video data bytes. Encoding: base64. If unset, the
|
|
// input video(s)
|
|
// should be specified via `input_uri`. If set, `input_uri` should be
|
|
// unset.
|
|
InputContent string `json:"inputContent,omitempty"`
|
|
|
|
// InputUri: Input video location. Currently, only
|
|
// [Google Cloud Storage](https://cloud.google.com/storage/) URIs
|
|
// are
|
|
// supported, which must be specified in the following
|
|
// format:
|
|
// `gs://bucket-id/object-id` (other URI formats
|
|
// return
|
|
// google.rpc.Code.INVALID_ARGUMENT). For more information, see
|
|
// [Request URIs](/storage/docs/reference-uris).
|
|
// A video URI may include wildcards in `object-id`, and thus
|
|
// identify
|
|
// multiple videos. Supported wildcards: '*' to match 0 or more
|
|
// characters;
|
|
// '?' to match 1 character. If unset, the input video should be
|
|
// embedded
|
|
// in the request as `input_content`. If set, `input_content` should be
|
|
// unset.
|
|
InputUri string `json:"inputUri,omitempty"`
|
|
|
|
// LocationId: Optional cloud region where annotation should take place.
|
|
// Supported cloud
|
|
// regions: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no
|
|
// region
|
|
// is specified, a region will be determined based on video file
|
|
// location.
|
|
LocationId string `json:"locationId,omitempty"`
|
|
|
|
// OutputUri: Optional location where the output (in JSON format) should
|
|
// be stored.
|
|
// Currently, only [Google Cloud
|
|
// Storage](https://cloud.google.com/storage/)
|
|
// URIs are supported, which must be specified in the following
|
|
// format:
|
|
// `gs://bucket-id/object-id` (other URI formats
|
|
// return
|
|
// google.rpc.Code.INVALID_ARGUMENT). For more information, see
|
|
// [Request URIs](/storage/docs/reference-uris).
|
|
OutputUri string `json:"outputUri,omitempty"`
|
|
|
|
// VideoContext: Additional video context and/or feature-specific
|
|
// parameters.
|
|
VideoContext *GoogleCloudVideointelligenceV1beta1VideoContext `json:"videoContext,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "Features") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "Features") to include in
|
|
// API requests with the JSON null value. By default, fields with empty
|
|
// values are omitted from API requests. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1AnnotateVideoResponse: Video
|
|
// annotation response. Included in the `response`
|
|
// field of the `Operation` returned by the `GetOperation`
|
|
// call of the `google::longrunning::Operations` service.
|
|
type GoogleCloudVideointelligenceV1beta1AnnotateVideoResponse struct {
|
|
// AnnotationResults: Annotation results for all videos specified in
|
|
// `AnnotateVideoRequest`.
|
|
AnnotationResults []*GoogleCloudVideointelligenceV1beta1VideoAnnotationResults `json:"annotationResults,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "AnnotationResults")
|
|
// to unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "AnnotationResults") to
|
|
// include in API requests with the JSON null value. By default, fields
|
|
// with empty values are omitted from API requests. However, any field
|
|
// with an empty value appearing in NullFields will be sent to the
|
|
// server as null. It is an error if a field in this list has a
|
|
// non-empty value. This may be used to include null fields in Patch
|
|
// requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1AnnotateVideoResponse) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1AnnotateVideoResponse
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1LabelAnnotation: Label annotation.
|
|
type GoogleCloudVideointelligenceV1beta1LabelAnnotation struct {
|
|
// Description: Textual description, e.g. `Fixed-gear bicycle`.
|
|
Description string `json:"description,omitempty"`
|
|
|
|
// LanguageCode: Language code for `description` in BCP-47 format.
|
|
LanguageCode string `json:"languageCode,omitempty"`
|
|
|
|
// Locations: Where the label was detected and with what confidence.
|
|
Locations []*GoogleCloudVideointelligenceV1beta1LabelLocation `json:"locations,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "Description") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "Description") to include
|
|
// in API requests with the JSON null value. By default, fields with
|
|
// empty values are omitted from API requests. However, any field with
|
|
// an empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1LabelAnnotation) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1LabelAnnotation
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1LabelLocation: Label location.
|
|
type GoogleCloudVideointelligenceV1beta1LabelLocation struct {
|
|
// Confidence: Confidence that the label is accurate. Range: [0, 1].
|
|
Confidence float64 `json:"confidence,omitempty"`
|
|
|
|
// Level: Label level.
|
|
//
|
|
// Possible values:
|
|
// "LABEL_LEVEL_UNSPECIFIED" - Unspecified.
|
|
// "VIDEO_LEVEL" - Video-level. Corresponds to the whole video.
|
|
// "SEGMENT_LEVEL" - Segment-level. Corresponds to one of
|
|
// `AnnotateSpec.segments`.
|
|
// "SHOT_LEVEL" - Shot-level. Corresponds to a single shot (i.e. a
|
|
// series of frames
|
|
// without a major camera position or background change).
|
|
// "FRAME_LEVEL" - Frame-level. Corresponds to a single video frame.
|
|
Level string `json:"level,omitempty"`
|
|
|
|
// Segment: Video segment. Set to [-1, -1] for video-level labels.
|
|
// Set to [timestamp, timestamp] for frame-level labels.
|
|
// Otherwise, corresponds to one of `AnnotateSpec.segments`
|
|
// (if specified) or to shot boundaries (if requested).
|
|
Segment *GoogleCloudVideointelligenceV1beta1VideoSegment `json:"segment,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "Confidence") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "Confidence") to include in
|
|
// API requests with the JSON null value. By default, fields with empty
|
|
// values are omitted from API requests. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1LabelLocation) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1LabelLocation
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1LabelLocation) UnmarshalJSON(data []byte) error {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1LabelLocation
|
|
var s1 struct {
|
|
Confidence gensupport.JSONFloat64 `json:"confidence"`
|
|
*noMethod
|
|
}
|
|
s1.noMethod = (*noMethod)(s)
|
|
if err := json.Unmarshal(data, &s1); err != nil {
|
|
return err
|
|
}
|
|
s.Confidence = float64(s1.Confidence)
|
|
return nil
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1VideoAnnotationProgress:
|
|
// Annotation progress for a single video.
|
|
type GoogleCloudVideointelligenceV1beta1VideoAnnotationProgress struct {
|
|
// InputUri: Video file location in
|
|
// [Google Cloud Storage](https://cloud.google.com/storage/).
|
|
InputUri string `json:"inputUri,omitempty"`
|
|
|
|
// ProgressPercent: Approximate percentage processed thus
|
|
// far.
|
|
// Guaranteed to be 100 when fully processed.
|
|
ProgressPercent int64 `json:"progressPercent,omitempty"`
|
|
|
|
// StartTime: Time when the request was received.
|
|
StartTime string `json:"startTime,omitempty"`
|
|
|
|
// UpdateTime: Time of the most recent update.
|
|
UpdateTime string `json:"updateTime,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "InputUri") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "InputUri") to include in
|
|
// API requests with the JSON null value. By default, fields with empty
|
|
// values are omitted from API requests. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1VideoAnnotationProgress) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1VideoAnnotationProgress
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1VideoAnnotationResults: Annotation
|
|
// results for a single video.
|
|
type GoogleCloudVideointelligenceV1beta1VideoAnnotationResults struct {
|
|
// Error: If set, indicates an error. Note that for a single
|
|
// `AnnotateVideoRequest`
|
|
// some videos may succeed and some may fail.
|
|
Error *GoogleRpcStatus `json:"error,omitempty"`
|
|
|
|
// InputUri: Video file location in
|
|
// [Google Cloud Storage](https://cloud.google.com/storage/).
|
|
InputUri string `json:"inputUri,omitempty"`
|
|
|
|
// LabelAnnotations: Label annotations. There is exactly one element for
|
|
// each unique label.
|
|
LabelAnnotations []*GoogleCloudVideointelligenceV1beta1LabelAnnotation `json:"labelAnnotations,omitempty"`
|
|
|
|
// ShotAnnotations: Shot annotations. Each shot is represented as a
|
|
// video segment.
|
|
ShotAnnotations []*GoogleCloudVideointelligenceV1beta1VideoSegment `json:"shotAnnotations,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "Error") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "Error") to include in API
|
|
// requests with the JSON null value. By default, fields with empty
|
|
// values are omitted from API requests. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1VideoAnnotationResults) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1VideoAnnotationResults
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1VideoContext: Video context and/or
|
|
// feature-specific parameters.
|
|
type GoogleCloudVideointelligenceV1beta1VideoContext struct {
|
|
// LabelDetectionMode: If label detection has been requested, what
|
|
// labels should be detected
|
|
// in addition to video-level labels or segment-level labels. If
|
|
// unspecified,
|
|
// defaults to `SHOT_MODE`.
|
|
//
|
|
// Possible values:
|
|
// "LABEL_DETECTION_MODE_UNSPECIFIED" - Unspecified.
|
|
// "SHOT_MODE" - Detect shot-level labels.
|
|
// "FRAME_MODE" - Detect frame-level labels.
|
|
// "SHOT_AND_FRAME_MODE" - Detect both shot-level and frame-level
|
|
// labels.
|
|
LabelDetectionMode string `json:"labelDetectionMode,omitempty"`
|
|
|
|
// LabelDetectionModel: Model to use for label detection.
|
|
// Supported values: "latest" and "stable" (the default).
|
|
LabelDetectionModel string `json:"labelDetectionModel,omitempty"`
|
|
|
|
// Segments: Video segments to annotate. The segments may overlap and
|
|
// are not required
|
|
// to be contiguous or span the whole video. If unspecified, each
|
|
// video
|
|
// is treated as a single segment.
|
|
Segments []*GoogleCloudVideointelligenceV1beta1VideoSegment `json:"segments,omitempty"`
|
|
|
|
// ShotChangeDetectionModel: Model to use for shot change
|
|
// detection.
|
|
// Supported values: "latest" and "stable" (the default).
|
|
ShotChangeDetectionModel string `json:"shotChangeDetectionModel,omitempty"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "LabelDetectionMode")
|
|
// to unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "LabelDetectionMode") to
|
|
// include in API requests with the JSON null value. By default, fields
|
|
// with empty values are omitted from API requests. However, any field
|
|
// with an empty value appearing in NullFields will be sent to the
|
|
// server as null. It is an error if a field in this list has a
|
|
// non-empty value. This may be used to include null fields in Patch
|
|
// requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1VideoContext) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1VideoContext
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleCloudVideointelligenceV1beta1VideoSegment: Video segment.
|
|
type GoogleCloudVideointelligenceV1beta1VideoSegment struct {
|
|
// EndTimeOffset: End offset in microseconds (inclusive). Unset means 0.
|
|
EndTimeOffset int64 `json:"endTimeOffset,omitempty,string"`
|
|
|
|
// StartTimeOffset: Start offset in microseconds (inclusive). Unset
|
|
// means 0.
|
|
StartTimeOffset int64 `json:"startTimeOffset,omitempty,string"`
|
|
|
|
// ForceSendFields is a list of field names (e.g. "EndTimeOffset") to
|
|
// unconditionally include in API requests. By default, fields with
|
|
// empty values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
ForceSendFields []string `json:"-"`
|
|
|
|
// NullFields is a list of field names (e.g. "EndTimeOffset") to include
|
|
// in API requests with the JSON null value. By default, fields with
|
|
// empty values are omitted from API requests. However, any field with
|
|
// an empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleCloudVideointelligenceV1beta1VideoSegment) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleCloudVideointelligenceV1beta1VideoSegment
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleLongrunningOperation: This resource represents a long-running
|
|
// operation that is the result of a
|
|
// network API call.
|
|
type GoogleLongrunningOperation 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 *GoogleRpcStatus `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 have the format of `operations/some/unique/name`.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// Response: The normal response of the operation in case of success.
|
|
// 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 values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
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. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleLongrunningOperation
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// GoogleRpcStatus: 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). The error model is designed to
|
|
// be:
|
|
//
|
|
// - Simple to use and understand for most users
|
|
// - Flexible enough to meet unexpected needs
|
|
//
|
|
// # Overview
|
|
//
|
|
// The `Status` message contains three pieces of data: error code, error
|
|
// message,
|
|
// and error details. The error code should be an enum value
|
|
// of
|
|
// google.rpc.Code, but it may accept additional error codes if needed.
|
|
// The
|
|
// error message should be a developer-facing English message that
|
|
// helps
|
|
// developers *understand* and *resolve* the error. If a localized
|
|
// user-facing
|
|
// error message is needed, put the localized message in the error
|
|
// details or
|
|
// localize it in the client. The optional error details may contain
|
|
// arbitrary
|
|
// information about the error. There is a predefined set of error
|
|
// detail types
|
|
// in the package `google.rpc` that can be used for common error
|
|
// conditions.
|
|
//
|
|
// # Language mapping
|
|
//
|
|
// The `Status` message is the logical representation of the error
|
|
// model, but it
|
|
// is not necessarily the actual wire format. When the `Status` message
|
|
// is
|
|
// exposed in different client libraries and different wire protocols,
|
|
// it can be
|
|
// mapped differently. For example, it will likely be mapped to some
|
|
// exceptions
|
|
// in Java, but more likely mapped to some error codes in C.
|
|
//
|
|
// # Other uses
|
|
//
|
|
// The error model and the `Status` message can be used in a variety
|
|
// of
|
|
// environments, either with or without APIs, to provide a
|
|
// consistent developer experience across different
|
|
// environments.
|
|
//
|
|
// Example uses of this error model include:
|
|
//
|
|
// - Partial errors. If a service needs to return partial errors to the
|
|
// client,
|
|
// it may embed the `Status` in the normal response to indicate the
|
|
// partial
|
|
// errors.
|
|
//
|
|
// - Workflow errors. A typical workflow has multiple steps. Each step
|
|
// may
|
|
// have a `Status` message for error reporting.
|
|
//
|
|
// - Batch operations. If a client uses batch request and batch
|
|
// response, the
|
|
// `Status` message should be used directly inside batch response,
|
|
// one for
|
|
// each error sub-response.
|
|
//
|
|
// - Asynchronous operations. If an API call embeds asynchronous
|
|
// operation
|
|
// results in its response, the status of those operations should
|
|
// be
|
|
// represented directly using the `Status` message.
|
|
//
|
|
// - Logging. If some API errors are stored in logs, the message
|
|
// `Status` could
|
|
// be used directly after any stripping needed for security/privacy
|
|
// reasons.
|
|
type GoogleRpcStatus 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 will
|
|
// be 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 values are omitted from API requests. However, any non-pointer,
|
|
// non-interface field appearing in ForceSendFields will be sent to the
|
|
// server regardless of whether the field is empty or not. This may be
|
|
// used to include empty fields in Patch requests.
|
|
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. However, any field with an
|
|
// empty value appearing in NullFields will be sent to the server as
|
|
// null. It is an error if a field in this list has a non-empty value.
|
|
// This may be used to include null fields in Patch requests.
|
|
NullFields []string `json:"-"`
|
|
}
|
|
|
|
func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
|
|
type noMethod GoogleRpcStatus
|
|
raw := noMethod(*s)
|
|
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
|
|
}
|
|
|
|
// method id "videointelligence.videos.annotate":
|
|
|
|
type VideosAnnotateCall struct {
|
|
s *Service
|
|
googlecloudvideointelligencev1beta1Annotatevideorequest *GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest
|
|
urlParams_ gensupport.URLParams
|
|
ctx_ context.Context
|
|
header_ http.Header
|
|
}
|
|
|
|
// Annotate: Performs asynchronous video annotation. Progress and
|
|
// results can be
|
|
// retrieved through the `google.longrunning.Operations`
|
|
// interface.
|
|
// `Operation.metadata` contains `AnnotateVideoProgress`
|
|
// (progress).
|
|
// `Operation.response` contains `AnnotateVideoResponse` (results).
|
|
func (r *VideosService) Annotate(googlecloudvideointelligencev1beta1Annotatevideorequest *GoogleCloudVideointelligenceV1beta1AnnotateVideoRequest) *VideosAnnotateCall {
|
|
c := &VideosAnnotateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
|
|
c.googlecloudvideointelligencev1beta1Annotatevideorequest = googlecloudvideointelligencev1beta1Annotatevideorequest
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved. See
|
|
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *VideosAnnotateCall) Fields(s ...googleapi.Field) *VideosAnnotateCall {
|
|
c.urlParams_.Set("fields", googleapi.CombineFields(s))
|
|
return c
|
|
}
|
|
|
|
// Context sets the context to be used in this call's Do method. Any
|
|
// pending HTTP request will be aborted if the provided context is
|
|
// canceled.
|
|
func (c *VideosAnnotateCall) Context(ctx context.Context) *VideosAnnotateCall {
|
|
c.ctx_ = ctx
|
|
return c
|
|
}
|
|
|
|
// Header returns an http.Header that can be modified by the caller to
|
|
// add HTTP headers to the request.
|
|
func (c *VideosAnnotateCall) Header() http.Header {
|
|
if c.header_ == nil {
|
|
c.header_ = make(http.Header)
|
|
}
|
|
return c.header_
|
|
}
|
|
|
|
func (c *VideosAnnotateCall) doRequest(alt string) (*http.Response, error) {
|
|
reqHeaders := make(http.Header)
|
|
for k, v := range c.header_ {
|
|
reqHeaders[k] = v
|
|
}
|
|
reqHeaders.Set("User-Agent", c.s.userAgent())
|
|
var body io.Reader = nil
|
|
body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlecloudvideointelligencev1beta1Annotatevideorequest)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reqHeaders.Set("Content-Type", "application/json")
|
|
c.urlParams_.Set("alt", alt)
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/videos:annotate")
|
|
urls += "?" + c.urlParams_.Encode()
|
|
req, _ := http.NewRequest("POST", urls, body)
|
|
req.Header = reqHeaders
|
|
return gensupport.SendRequest(c.ctx_, c.s.client, req)
|
|
}
|
|
|
|
// Do executes the "videointelligence.videos.annotate" call.
|
|
// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
|
|
// Any non-2xx status code is an error. Response headers are in either
|
|
// *GoogleLongrunningOperation.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 *VideosAnnotateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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, &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, err
|
|
}
|
|
ret := &GoogleLongrunningOperation{
|
|
ServerResponse: googleapi.ServerResponse{
|
|
Header: res.Header,
|
|
HTTPStatusCode: res.StatusCode,
|
|
},
|
|
}
|
|
target := &ret
|
|
if err := json.NewDecoder(res.Body).Decode(target); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Performs asynchronous video annotation. Progress and results can be\nretrieved through the `google.longrunning.Operations` interface.\n`Operation.metadata` contains `AnnotateVideoProgress` (progress).\n`Operation.response` contains `AnnotateVideoResponse` (results).",
|
|
// "flatPath": "v1beta1/videos:annotate",
|
|
// "httpMethod": "POST",
|
|
// "id": "videointelligence.videos.annotate",
|
|
// "parameterOrder": [],
|
|
// "parameters": {},
|
|
// "path": "v1beta1/videos:annotate",
|
|
// "request": {
|
|
// "$ref": "GoogleCloudVideointelligenceV1beta1_AnnotateVideoRequest"
|
|
// },
|
|
// "response": {
|
|
// "$ref": "GoogleLongrunning_Operation"
|
|
// },
|
|
// "scopes": [
|
|
// "https://www.googleapis.com/auth/cloud-platform"
|
|
// ]
|
|
// }
|
|
|
|
}
|