muxgo

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2021 License: MIT Imports: 19 Imported by: 42

README

Mux Go Banner

GoDoc

Mux Go

Official Mux API wrapper for golang projects, supporting both Mux Data and Mux Video.

Mux Video is an API-first platform, powered by data and designed by video experts to make beautiful video possible for every development team.

Mux Data is a platform for monitoring your video streaming performance with just a few lines of code. Get in-depth quality of service analytics on web, mobile, and OTT devices.

Not familiar with Mux? Check out https://mux.com/ for more information.

Installation

go get github.com/muxinc/mux-go

Getting Started

Overview

Mux Go is a code generated lightweight wrapper around the Mux REST API and reflects them accurately. This has a few consequences you should watch out for:

  1. For almost all API responses, the object you're looking for will be in the data field on the API response object, as in the example below. This is because we designed our APIs with similar concepts to the JSON:API standard. This means we'll be able to return more metadata from our API calls (such as related entities) without the need to make breaking changes to our APIs. We've decided not to hide that in this library.

  2. We don't use a lot of object orientation. For example API calls that happen on a single asset don't exist in the asset class, but are API calls in the AssetsApi which require an asset ID.

Authentication

To use the Mux API, you'll need an access token and a secret. Details on obtaining these can be found here in the Mux documentation.

Its up to you to manage your token and secret. In our examples, we read them from MUX_TOKEN_ID and MUX_TOKEN_SECRET in your environment.

Example Usage

Below is a quick example of using mux-go to list the Video assets stored in your Mux account.

Be sure to also checkout the exmples directory.

package main

import (
	"fmt"
	"os"

	"github.com/muxinc/mux-go"
)

func main() {
	// API Client Init
	client := muxgo.NewAPIClient(
		muxgo.NewConfiguration(
			muxgo.WithBasicAuth(os.Getenv("MUX_TOKEN_ID"), os.Getenv("MUX_TOKEN_SECRET")),
		))

	// List Assets
	fmt.Println("Listing Assets...\n")
	r, err := client.AssetsApi.ListAssets()
	if err != nil {
		fmt.Printf("err: %s \n\n", err)
		os.Exit(255)
	}
	for _, asset := range r.Data {
		fmt.Printf("Asset ID: %s\n", asset.Id)
		fmt.Printf("Status: %s\n", asset.Status)
		fmt.Printf("Duration: %f\n\n", asset.Duration)
	}
}

Errors & Error Handling

All API calls return an err as their final return value. Below is documented the errors you might want to check for. You can check error.Body on all errors to see the full HTTP response.

BadRequestError

BadRequestError is returned when a you make a bad request to Mux, this likely means you've passed in an invalid parameter to the API call.

UnauthorizedError

UnauthorizedError is returned when Mux cannot authenticate your request. You should check you have configured your credentials correctly.

ForbiddenError

ForbiddenError is returned you don't have permission to access that resource. You should check you have configured your credentials correctly.

NotFoundError

NotFoundError is returned when a resource is not found. This is useful when trying to get an entity by its ID.

TooManyRequestsError

TooManyRequestsError is returned when you exceed the maximum number of requests allowed for a given time period. Please get in touch with support@mux.com if you need to talk about this limit.

ServiceError

ServiceError is returned when Mux returns a HTTP 5XX Status Code. If you encounter this reproducibly, please get in touch with support@mux.com.

GenericOpenAPIError

GenericOpenAPIError is a fallback Error which may be returned in some edge cases. This will be deprecated in a later release but remains present for API compatibility.

Documentation

Be sure to check out the documentation in the docs directory.

Issues

If you run into problems, please raise a GitHub issue, filling in the issue template. We'll take a look as soon as possible.

Contributing

Please do not submit PRs against this package. It is generated from our OpenAPI definitions - Please open an issue instead!

License

MIT License. Copyright 2019 Mux, Inc.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckForHttpError added in v0.3.0

func CheckForHttpError(code int, body []byte) error

Helper to check for common non-200 errors

Types

type APIClient

type APIClient struct {

	// API Services
	AssetsApi         *AssetsApiService
	DeliveryUsageApi  *DeliveryUsageApiService
	DimensionsApi     *DimensionsApiService
	DirectUploadsApi  *DirectUploadsApiService
	ErrorsApi         *ErrorsApiService
	ExportsApi        *ExportsApiService
	FiltersApi        *FiltersApiService
	IncidentsApi      *IncidentsApiService
	LiveStreamsApi    *LiveStreamsApiService
	MetricsApi        *MetricsApiService
	PlaybackIDApi     *PlaybackIDApiService
	RealTimeApi       *RealTimeApiService
	URLSigningKeysApi *URLSigningKeysApiService
	VideoViewsApi     *VideoViewsApiService
	// contains filtered or unexported fields
}

APIClient manages communication with the Mux API API vv1 In most cases there should be only one, shared, APIClient.

func NewAPIClient

func NewAPIClient(cfg *Configuration) *APIClient

NewAPIClient creates a new API client.

type APIOption

type APIOption func(*APIOptions)

APIOption sets options for API calls.

func WithContext

func WithContext(ctx context.Context) APIOption

WithContext returns an APIOption that sets the context for an API call.

func WithParams

func WithParams(params interface{}) APIOption

WithParams returns an APIOption that sets the params for an API call. The params provided must be the correct type for the call or an error will be thrown by the call.

type APIOptions

type APIOptions struct {
	// contains filtered or unexported fields
}

APIOptions wraps internal API call options.

type AbridgedVideoView

type AbridgedVideoView struct {
	Id                    string `json:"id,omitempty"`
	ViewerOsFamily        string `json:"viewer_os_family,omitempty"`
	ViewerApplicationName string `json:"viewer_application_name,omitempty"`
	VideoTitle            string `json:"video_title,omitempty"`
	TotalRowCount         int64  `json:"total_row_count,omitempty"`
	PlayerErrorMessage    string `json:"player_error_message,omitempty"`
	PlayerErrorCode       string `json:"player_error_code,omitempty"`
	ErrorTypeId           int32  `json:"error_type_id,omitempty"`
	CountryCode           string `json:"country_code,omitempty"`
	ViewStart             string `json:"view_start,omitempty"`
	ViewEnd               string `json:"view_end,omitempty"`
}

type Asset

type Asset struct {
	// Unique identifier for the Asset. Max 255 characters.
	Id string `json:"id,omitempty"`
	// Time the Asset was created, defined as a Unix timestamp (seconds since epoch).
	CreatedAt string `json:"created_at,omitempty"`
	// The status of the asset.
	Status string `json:"status,omitempty"`
	// The duration of the asset in seconds (max duration for a single asset is 12 hours).
	Duration float64 `json:"duration,omitempty"`
	// The maximum resolution that has been stored for the asset. The asset may be delivered at lower resolutions depending on the device and bandwidth, however it cannot be delivered at a higher value than is stored.
	MaxStoredResolution string `json:"max_stored_resolution,omitempty"`
	// The maximum frame rate that has been stored for the asset. The asset may be delivered at lower frame rates depending on the device and bandwidth, however it cannot be delivered at a higher value than is stored. This field may return -1 if the frame rate of the input cannot be reliably determined.
	MaxStoredFrameRate float64 `json:"max_stored_frame_rate,omitempty"`
	// The aspect ratio of the asset in the form of `width:height`, for example `16:9`.
	AspectRatio string `json:"aspect_ratio,omitempty"`
	// An array of Playback ID objects. Use these to create HLS playback URLs. See [Play your videos](https://docs.mux.com/guides/video/play-your-videos) for more details.
	PlaybackIds []PlaybackId `json:"playback_ids,omitempty"`
	// The individual media tracks that make up an asset.
	Tracks         []Track     `json:"tracks,omitempty"`
	Errors         AssetErrors `json:"errors,omitempty"`
	PerTitleEncode bool        `json:"per_title_encode,omitempty"`
	// Unique identifier for the Direct Upload. This is an optional parameter added when the asset is created from a direct upload.
	UploadId string `json:"upload_id,omitempty"`
	// Whether the asset is created from a live stream and the live stream is currently `active` and not in `idle` state.
	IsLive bool `json:"is_live,omitempty"`
	// Arbitrary metadata set for the asset. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// Unique identifier for the live stream. This is an optional parameter added when the asset is created from a live stream.
	LiveStreamId string      `json:"live_stream_id,omitempty"`
	Master       AssetMaster `json:"master,omitempty"`
	MasterAccess string      `json:"master_access,omitempty"`
	Mp4Support   string      `json:"mp4_support,omitempty"`
	// Asset Identifier of the video used as the source for creating the clip.
	SourceAssetId string `json:"source_asset_id,omitempty"`
	// Normalize the audio track loudness level. This parameter is only applicable to on-demand (not live) assets.
	NormalizeAudio   bool                  `json:"normalize_audio,omitempty"`
	StaticRenditions AssetStaticRenditions `json:"static_renditions,omitempty"`
	// An array of individual live stream recording sessions. A recording session is created on each encoder connection during the live stream
	RecordingTimes          []AssetRecordingTimes        `json:"recording_times,omitempty"`
	NonStandardInputReasons AssetNonStandardInputReasons `json:"non_standard_input_reasons,omitempty"`
	// True means this live stream is a test asset. A test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test assets are watermarked with the Mux logo, limited to 10 seconds, and deleted after 24 hrs.
	Test bool `json:"test,omitempty"`
}

type AssetErrors

type AssetErrors struct {
	// The type of error that occurred for this asset.
	Type string `json:"type,omitempty"`
	// Error messages with more details.
	Messages []string `json:"messages,omitempty"`
}

Object that describes any errors that happened when processing this asset.

type AssetMaster

type AssetMaster struct {
	Status string `json:"status,omitempty"`
	// The temporary URL to the master version of the video, as an MP4 file. This URL will expire after 24 hours.
	Url string `json:"url,omitempty"`
}

An object containing the current status of Master Access and the link to the Master MP4 file when ready. This object does not exist if `master_acess` is set to `none` and when the temporary URL expires.

type AssetNonStandardInputReasons added in v0.10.0

type AssetNonStandardInputReasons struct {
	// The video codec used on the input file. For example, the input file encoded with `hevc` video codec is non-standard and the value of this parameter is `hevc`.
	VideoCodec string `json:"video_codec,omitempty"`
	// The audio codec used on the input file. Non-AAC audio codecs are non-standard.
	AudioCodec string `json:"audio_codec,omitempty"`
	// The video key frame Interval (also called as Group of Picture or GOP) of the input file is `high`. This parameter is present when the gop is greater than 10 seconds.
	VideoGopSize string `json:"video_gop_size,omitempty"`
	// The video frame rate of the input file. Video with average frames per second (fps) less than 10 or greater than 120 is non-standard. A `-1` frame rate value indicates Mux could not determine the frame rate of the video track.
	VideoFrameRate string `json:"video_frame_rate,omitempty"`
	// The video resolution of the input file. Video resolution higher than 2048 pixels on any one dimension (height or width) is considered non-standard, The resolution value is presented as `width` x `height` in pixels.
	VideoResolution string `json:"video_resolution,omitempty"`
	// The video bitrate of the input file is `high`. This parameter is present when the average bitrate of any key frame interval (also known as Group of Pictures or GOP) is higher than what's considered standard which typically is 16 Mbps.
	VideoBitrate string `json:"video_bitrate,omitempty"`
	// The video pixel aspect ratio of the input file.
	PixelAspectRatio string `json:"pixel_aspect_ratio,omitempty"`
	// Video Edit List reason indicates that the input file's video track contains a complex Edit Decision List.
	VideoEditList string `json:"video_edit_list,omitempty"`
	// Audio Edit List reason indicates that the input file's audio track contains a complex Edit Decision List.
	AudioEditList string `json:"audio_edit_list,omitempty"`
	// A catch-all reason when the input file in created with non-standard encoding parameters.
	UnexpectedMediaFileParameters string `json:"unexpected_media_file_parameters,omitempty"`
}

An object containing one or more reasons the input file is non-standard. See [the guide on minimizing processing time](https://docs.mux.com/guides/video/minimize-processing-time) for more information on what a standard input is defined as. This object only exists on on-demand assets that have non-standard inputs, so if missing you can assume the input qualifies as standard.

type AssetRecordingTimes added in v0.10.0

type AssetRecordingTimes struct {
	// The time at which the recording for the live stream started. The time value is Unix epoch time represented in ISO 8601 format.
	StartedAt time.Time `json:"started_at,omitempty"`
	// The duration of the live stream recorded. The time value is in seconds.
	Duration float64 `json:"duration,omitempty"`
}

type AssetResponse

type AssetResponse struct {
	Data Asset `json:"data,omitempty"`
}

type AssetStaticRenditions

type AssetStaticRenditions struct {
	// Indicates the status of downloadable MP4 versions of this asset.
	Status string `json:"status,omitempty"`
	// Array of file objects.
	Files []AssetStaticRenditionsFiles `json:"files,omitempty"`
}

An object containing the current status of any static renditions (mp4s). The object does not exist if no static renditions have been requested. See [Download your videos](https://docs.mux.com/guides/video/download-your-videos) for more information.

type AssetStaticRenditionsFiles

type AssetStaticRenditionsFiles struct {
	Name string `json:"name,omitempty"`
	// Extension of the static rendition file
	Ext string `json:"ext,omitempty"`
	// The height of the static rendition's file in pixels
	Height int32 `json:"height,omitempty"`
	// The width of the static rendition's file in pixels
	Width int32 `json:"width,omitempty"`
	// The bitrate in bits per second
	Bitrate int64 `json:"bitrate,omitempty"`
	// The file size in bytes
	Filesize string `json:"filesize,omitempty"`
}

type AssetsApiService

type AssetsApiService service

func (*AssetsApiService) CreateAsset

func (a *AssetsApiService) CreateAsset(createAssetRequest CreateAssetRequest, opts ...APIOption) (AssetResponse, error)

func (*AssetsApiService) CreateAssetPlaybackId

func (a *AssetsApiService) CreateAssetPlaybackId(aSSETID string, createPlaybackIdRequest CreatePlaybackIdRequest, opts ...APIOption) (CreatePlaybackIdResponse, error)

func (*AssetsApiService) CreateAssetTrack added in v0.6.0

func (a *AssetsApiService) CreateAssetTrack(aSSETID string, createTrackRequest CreateTrackRequest, opts ...APIOption) (CreateTrackResponse, error)

func (*AssetsApiService) DeleteAsset

func (a *AssetsApiService) DeleteAsset(aSSETID string, opts ...APIOption) error

func (*AssetsApiService) DeleteAssetPlaybackId

func (a *AssetsApiService) DeleteAssetPlaybackId(aSSETID string, pLAYBACKID string, opts ...APIOption) error

func (*AssetsApiService) DeleteAssetTrack added in v0.6.0

func (a *AssetsApiService) DeleteAssetTrack(aSSETID string, tRACKID string, opts ...APIOption) error

func (*AssetsApiService) GetAsset

func (a *AssetsApiService) GetAsset(aSSETID string, opts ...APIOption) (AssetResponse, error)

func (*AssetsApiService) GetAssetInputInfo

func (a *AssetsApiService) GetAssetInputInfo(aSSETID string, opts ...APIOption) (GetAssetInputInfoResponse, error)

func (*AssetsApiService) GetAssetPlaybackId

func (a *AssetsApiService) GetAssetPlaybackId(aSSETID string, pLAYBACKID string, opts ...APIOption) (GetAssetPlaybackIdResponse, error)

func (*AssetsApiService) ListAssets

func (a *AssetsApiService) ListAssets(opts ...APIOption) (ListAssetsResponse, error)

ListAssets optionally accepts the APIOption of WithParams(*ListAssetsParams).

func (*AssetsApiService) UpdateAssetMasterAccess added in v0.7.0

func (a *AssetsApiService) UpdateAssetMasterAccess(aSSETID string, updateAssetMasterAccessRequest UpdateAssetMasterAccessRequest, opts ...APIOption) (AssetResponse, error)

func (*AssetsApiService) UpdateAssetMp4Support

func (a *AssetsApiService) UpdateAssetMp4Support(aSSETID string, updateAssetMp4SupportRequest UpdateAssetMp4SupportRequest, opts ...APIOption) (AssetResponse, error)

type BadRequestError added in v0.3.0

type BadRequestError struct {
	// contains filtered or unexported fields
}

Generic 400 error

func (BadRequestError) Error added in v0.3.0

func (e BadRequestError) Error() string

type BreakdownValue

type BreakdownValue struct {
	Views          int64   `json:"views,omitempty"`
	Value          float64 `json:"value,omitempty"`
	TotalWatchTime int64   `json:"total_watch_time,omitempty"`
	NegativeImpact int32   `json:"negative_impact,omitempty"`
	Field          string  `json:"field,omitempty"`
}

type Configuration

type Configuration struct {
	// contains filtered or unexported fields
}

func NewConfiguration

func NewConfiguration(opts ...ConfigurationOption) *Configuration

type ConfigurationOption

type ConfigurationOption func(*Configuration)

ConfigurationOption configures the Mux API Client.

func WithBasicAuth

func WithBasicAuth(username, password string) ConfigurationOption

func WithHost

func WithHost(host string) ConfigurationOption

func WithTimeout

func WithTimeout(t time.Duration) ConfigurationOption

type CreateAssetRequest

type CreateAssetRequest struct {
	// An array of objects that each describe an input file to be used to create the asset. As a shortcut, input can also be a string URL for a file when only one input file is used. See `input[].url` for requirements.
	Input []InputSettings `json:"input,omitempty"`
	// An array of playback policy names that you want applied to this asset and available through `playback_ids`. Options include: `\"public\"` (anyone with the playback URL can stream the asset). And `\"signed\"` (an additional access token is required to play the asset). If no playback_policy is set, the asset will have no playback IDs and will therefore not be playable. For simplicity, a single string name can be used in place of the array in the case of only one playback policy.
	PlaybackPolicy []PlaybackPolicy `json:"playback_policy,omitempty"`
	PerTitleEncode bool             `json:"per_title_encode,omitempty"`
	// Arbitrary metadata that will be included in the asset details and related webhooks. Can be used to store your own ID for a video along with the asset. **Max: 255 characters**.
	Passthrough string `json:"passthrough,omitempty"`
	// Specify what level (if any) of support for mp4 playback. In most cases you should use our default HLS-based streaming playback ({playback_id}.m3u8) which can automatically adjust to viewers' connection speeds, but an mp4 can be useful for some legacy devices or downloading for offline playback. See the [Download your videos guide](/guides/video/download-your-videos) for more information.
	Mp4Support string `json:"mp4_support,omitempty"`
	// Normalize the audio track loudness level. This parameter is only applicable to on-demand (not live) assets.
	NormalizeAudio bool `json:"normalize_audio,omitempty"`
	// Specify what level (if any) of support for master access. Master access can be enabled temporarily for your asset to be downloaded. See the [Download your videos guide](/guides/video/download-your-videos) for more information.
	MasterAccess string `json:"master_access,omitempty"`
	// Marks the asset as a test asset when the value is set to true. A Test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test asset are watermarked with the Mux logo, limited to 10 seconds, deleted after 24 hrs.
	Test bool `json:"test,omitempty"`
}

type CreateLiveStreamRequest

type CreateLiveStreamRequest struct {
	PlaybackPolicy   []PlaybackPolicy   `json:"playback_policy,omitempty"`
	NewAssetSettings CreateAssetRequest `json:"new_asset_settings,omitempty"`
	// When live streaming software disconnects from Mux, either intentionally or due to a drop in the network, the Reconnect Window is the time in seconds that Mux should wait for the streaming software to reconnect before considering the live stream finished and completing the recorded asset. Defaults to 60 seconds on the API if not specified.
	ReconnectWindow float32 `json:"reconnect_window,omitempty"`
	Passthrough     string  `json:"passthrough,omitempty"`
	// Force the live stream to only process the audio track when the value is set to true. Mux drops the video track if broadcasted.
	AudioOnly bool `json:"audio_only,omitempty"`
	// Describe the subtitle contents of the incoming live stream.
	EmbeddedSubtitles []LiveStreamEmbeddedSubtitleSettings `json:"embedded_subtitles,omitempty"`
	// Latency is the time from when the streamer does something in real life to when you see it happen in the player. Set this if you want lower latency for your live stream. Note: Reconnect windows are incompatible with Reduced Latency and will always be set to zero (0) seconds. Read more here: https://mux.com/blog/reduced-latency-for-mux-live-streaming-now-available/
	ReducedLatency bool `json:"reduced_latency,omitempty"`
	// Latency is the time from when the streamer does something in real life to when you see it happen in the player. Setting this option will enable compatibility with the LL-HLS specification for low-latency streaming. This typically has lower latency than Reduced Latency streams, and cannot be combined with Reduced Latency. Note: Reconnect windows are incompatible with Low Latency and will always be set to zero (0) seconds.
	LowLatency bool `json:"low_latency,omitempty"`
	// Marks the live stream as a test live stream when the value is set to true. A test live stream can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test live streams created. Test live streams are watermarked with the Mux logo and limited to 5 minutes. The test live stream is disabled after the stream is active for 5 mins and the recorded asset also deleted after 24 hours.
	Test             bool                           `json:"test,omitempty"`
	SimulcastTargets []CreateSimulcastTargetRequest `json:"simulcast_targets,omitempty"`
}

type CreatePlaybackIdRequest

type CreatePlaybackIdRequest struct {
	Policy PlaybackPolicy `json:"policy,omitempty"`
}

type CreatePlaybackIdResponse

type CreatePlaybackIdResponse struct {
	Data PlaybackId `json:"data,omitempty"`
}

type CreateSimulcastTargetRequest added in v0.4.0

type CreateSimulcastTargetRequest struct {
	// Arbitrary metadata set by you when creating a simulcast target.
	Passthrough string `json:"passthrough,omitempty"`
	// Stream Key represents a stream identifier on the third party live streaming service to send the parent live stream to.
	StreamKey string `json:"stream_key,omitempty"`
	// RTMP hostname including application name for the third party live streaming service. Example: 'rtmp://live.example.com/app'.
	Url string `json:"url"`
}

type CreateTrackRequest added in v0.6.0

type CreateTrackRequest struct {
	Url      string `json:"url"`
	Type     string `json:"type"`
	TextType string `json:"text_type"`
	// The language code value must be a valid BCP 47 specification compliant value. For example, en for English or en-US for the US version of English.
	LanguageCode string `json:"language_code"`
	// The name of the track containing a human-readable description. This value must be unique across all the text type and subtitles text type tracks. HLS manifest will associate subtitle text track with this value. For example, set the value to \"English\" for subtitles text track with language_code as en-US. If this parameter is not included, Mux will auto-populate based on the language_code value.
	Name string `json:"name,omitempty"`
	// Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH).
	ClosedCaptions bool `json:"closed_captions,omitempty"`
	// Arbitrary metadata set for the track either when creating the asset or track.
	Passthrough string `json:"passthrough,omitempty"`
}

type CreateTrackResponse added in v0.6.0

type CreateTrackResponse struct {
	Data Track `json:"data,omitempty"`
}

type CreateUploadRequest

type CreateUploadRequest struct {
	// Max time in seconds for the signed upload URL to be valid. If a successful upload has not occurred before the timeout limit, the direct upload is marked `timed_out`
	Timeout int32 `json:"timeout,omitempty"`
	// If the upload URL will be used in a browser, you must specify the origin in order for the signed URL to have the correct CORS headers.
	CorsOrigin       string             `json:"cors_origin,omitempty"`
	NewAssetSettings CreateAssetRequest `json:"new_asset_settings"`
	Test             bool               `json:"test,omitempty"`
}

type DeliveryReport added in v0.4.0

type DeliveryReport struct {
	// Unique identifier for the live stream that created the asset.
	LiveStreamId string `json:"live_stream_id,omitempty"`
	// Unique identifier for the asset.
	AssetId string `json:"asset_id,omitempty"`
	// The `passthrough` value for the asset.
	Passthrough string `json:"passthrough,omitempty"`
	// Time at which the asset was created. Measured in seconds since the Unix epoch.
	CreatedAt string `json:"created_at,omitempty"`
	// If exists, time at which the asset was deleted. Measured in seconds since the Unix epoch.
	DeletedAt string `json:"deleted_at,omitempty"`
	// The state of the asset.
	AssetState string `json:"asset_state,omitempty"`
	// The duration of the asset in seconds.
	AssetDuration float64 `json:"asset_duration,omitempty"`
	// Total number of delivered seconds during this time window.
	DeliveredSeconds float64 `json:"delivered_seconds,omitempty"`
}

type DeliveryUsageApiService added in v0.4.0

type DeliveryUsageApiService service

func (*DeliveryUsageApiService) ListDeliveryUsage added in v0.4.0

func (a *DeliveryUsageApiService) ListDeliveryUsage(opts ...APIOption) (ListDeliveryUsageResponse, error)

ListDeliveryUsage optionally accepts the APIOption of WithParams(*ListDeliveryUsageParams).

type DimensionValue added in v0.11.0

type DimensionValue struct {
	Value      string `json:"value,omitempty"`
	TotalCount int64  `json:"total_count,omitempty"`
}

type DimensionsApiService added in v0.11.0

type DimensionsApiService service

func (*DimensionsApiService) ListDimensionValues added in v0.11.0

func (a *DimensionsApiService) ListDimensionValues(dIMENSIONID string, opts ...APIOption) (ListDimensionValuesResponse, error)

ListDimensionValues optionally accepts the APIOption of WithParams(*ListDimensionValuesParams).

func (*DimensionsApiService) ListDimensions added in v0.11.0

func (a *DimensionsApiService) ListDimensions(opts ...APIOption) (ListDimensionsResponse, error)

type DirectUploadsApiService

type DirectUploadsApiService service

func (*DirectUploadsApiService) CancelDirectUpload

func (a *DirectUploadsApiService) CancelDirectUpload(uPLOADID string, opts ...APIOption) (UploadResponse, error)

func (*DirectUploadsApiService) CreateDirectUpload

func (a *DirectUploadsApiService) CreateDirectUpload(createUploadRequest CreateUploadRequest, opts ...APIOption) (UploadResponse, error)

func (*DirectUploadsApiService) GetDirectUpload

func (a *DirectUploadsApiService) GetDirectUpload(uPLOADID string, opts ...APIOption) (UploadResponse, error)

func (*DirectUploadsApiService) ListDirectUploads

func (a *DirectUploadsApiService) ListDirectUploads(opts ...APIOption) (ListUploadsResponse, error)

ListDirectUploads optionally accepts the APIOption of WithParams(*ListDirectUploadsParams).

type DisableLiveStreamResponse added in v0.10.0

type DisableLiveStreamResponse struct {
	Data map[string]interface{} `json:"data,omitempty"`
}

type EnableLiveStreamResponse added in v0.10.0

type EnableLiveStreamResponse struct {
	Data map[string]interface{} `json:"data,omitempty"`
}

type Error

type Error struct {
	// A unique identifier for this error.
	Id int64 `json:"id,omitempty"`
	// The percentage of views that experienced this error.
	Percentage float64 `json:"percentage,omitempty"`
	// Notes that are attached to this error.
	Notes string `json:"notes,omitempty"`
	// The error message.
	Message string `json:"message,omitempty"`
	// The last time this error was seen (ISO 8601 timestamp).
	LastSeen string `json:"last_seen,omitempty"`
	// Description of the error.
	Description string `json:"description,omitempty"`
	// The total number of views that experiend this error.
	Count int64 `json:"count,omitempty"`
	// The error code
	Code int64 `json:"code,omitempty"`
}

type ErrorsApiService

type ErrorsApiService service

func (*ErrorsApiService) ListErrors

func (a *ErrorsApiService) ListErrors(opts ...APIOption) (ListErrorsResponse, error)

ListErrors optionally accepts the APIOption of WithParams(*ListErrorsParams).

type ExportDate added in v0.14.0

type ExportDate struct {
	ExportDate string       `json:"export_date,omitempty"`
	Files      []ExportFile `json:"files,omitempty"`
}

type ExportFile added in v0.14.0

type ExportFile struct {
	Version int32  `json:"version,omitempty"`
	Type    string `json:"type,omitempty"`
	Path    string `json:"path,omitempty"`
}

type ExportsApiService

type ExportsApiService service

func (*ExportsApiService) ListExports

func (a *ExportsApiService) ListExports(opts ...APIOption) (ListExportsResponse, error)

func (*ExportsApiService) ListExportsViews added in v0.14.0

func (a *ExportsApiService) ListExportsViews(opts ...APIOption) (ListVideoViewExportsResponse, error)

type FilterValue

type FilterValue struct {
	Value      string `json:"value,omitempty"`
	TotalCount int64  `json:"total_count,omitempty"`
}

type FiltersApiService

type FiltersApiService service

func (*FiltersApiService) ListFilterValues

func (a *FiltersApiService) ListFilterValues(fILTERID string, opts ...APIOption) (ListFilterValuesResponse, error)

ListFilterValues optionally accepts the APIOption of WithParams(*ListFilterValuesParams).

func (*FiltersApiService) ListFilters

func (a *FiltersApiService) ListFilters(opts ...APIOption) (ListFiltersResponse, error)

type ForbiddenError added in v0.3.0

type ForbiddenError struct {
	// contains filtered or unexported fields
}

403 Error

func (ForbiddenError) Body added in v0.3.0

func (e ForbiddenError) Body() []byte

func (ForbiddenError) Error added in v0.3.0

func (e ForbiddenError) Error() string

type GenericOpenAPIError

type GenericOpenAPIError struct {
	// contains filtered or unexported fields
}

GenericOpenAPIError Provides access to the body, error and model on returned errors.

func (GenericOpenAPIError) Body

func (e GenericOpenAPIError) Body() []byte

Body returns the raw bytes of the response

func (GenericOpenAPIError) Error

func (e GenericOpenAPIError) Error() string

Error returns non-empty string if there was an error.

func (GenericOpenAPIError) Model

func (e GenericOpenAPIError) Model() interface{}

Model returns the unpacked model of the error

type GetAssetInputInfoResponse

type GetAssetInputInfoResponse struct {
	Data []InputInfo `json:"data,omitempty"`
}

type GetAssetOrLiveStreamIdResponse added in v0.13.0

type GetAssetOrLiveStreamIdResponse struct {
	Data GetAssetOrLiveStreamIdResponseData `json:"data,omitempty"`
}

type GetAssetOrLiveStreamIdResponseData added in v0.13.0

type GetAssetOrLiveStreamIdResponseData struct {
	// The Playback ID used to retrieve the corresponding asset or the live stream ID
	Id     string                                   `json:"id,omitempty"`
	Policy PlaybackPolicy                           `json:"policy,omitempty"`
	Object GetAssetOrLiveStreamIdResponseDataObject `json:"object,omitempty"`
}

type GetAssetOrLiveStreamIdResponseDataObject added in v0.13.0

type GetAssetOrLiveStreamIdResponseDataObject struct {
	// The identifier of the object.
	Id string `json:"id,omitempty"`
	// Identifies the object type associated with the playback ID.
	Type string `json:"type,omitempty"`
}

Describes the Asset or LiveStream object associated with the playback ID.

type GetAssetPlaybackIdResponse

type GetAssetPlaybackIdResponse struct {
	Data PlaybackId `json:"data,omitempty"`
}

type GetLiveStreamPlaybackIdResponse added in v1.0.1

type GetLiveStreamPlaybackIdResponse struct {
	Data PlaybackId `json:"data,omitempty"`
}

type GetMetricTimeseriesDataParams

type GetMetricTimeseriesDataParams struct {
	Timeframe      []string
	Filters        []string
	Measurement    string
	OrderDirection string
	GroupBy        string
}

type GetMetricTimeseriesDataResponse

type GetMetricTimeseriesDataResponse struct {
	Data          [][]string `json:"data,omitempty"`
	TotalRowCount int64      `json:"total_row_count,omitempty"`
	Timeframe     []int64    `json:"timeframe,omitempty"`
}

func (*GetMetricTimeseriesDataResponse) UnmarshalJSON added in v0.2.0

func (this *GetMetricTimeseriesDataResponse) UnmarshalJSON(data []byte) error

!!! 🐉 Here be dragons 🐉 !!! We use a custom Unmarshal to work around one awkward API call where we can't model the response from the API elegantly since go doesn't have heterogeneous arrays. This isn't perfect, or memory friendly, but it works.

type GetOverallValuesParams

type GetOverallValuesParams struct {
	Timeframe   []string
	Filters     []string
	Measurement string
}

type GetOverallValuesResponse

type GetOverallValuesResponse struct {
	Data          OverallValues `json:"data,omitempty"`
	TotalRowCount int64         `json:"total_row_count,omitempty"`
	Timeframe     []int64       `json:"timeframe,omitempty"`
}

type GetRealTimeBreakdownResponse added in v0.11.0

type GetRealTimeBreakdownResponse struct {
	Data          []RealTimeBreakdownValue `json:"data,omitempty"`
	TotalRowCount int64                    `json:"total_row_count,omitempty"`
	Timeframe     []int64                  `json:"timeframe,omitempty"`
}

type GetRealTimeHistogramTimeseriesResponse added in v0.11.0

type GetRealTimeHistogramTimeseriesResponse struct {
	Meta          GetRealTimeHistogramTimeseriesResponseMeta `json:"meta,omitempty"`
	Data          []RealTimeHistogramTimeseriesDatapoint     `json:"data,omitempty"`
	TotalRowCount int64                                      `json:"total_row_count,omitempty"`
	Timeframe     []int64                                    `json:"timeframe,omitempty"`
}

type GetRealTimeHistogramTimeseriesResponseMeta added in v0.11.0

type GetRealTimeHistogramTimeseriesResponseMeta struct {
	Buckets []RealTimeHistogramTimeseriesBucket `json:"buckets,omitempty"`
}

type GetRealTimeTimeseriesResponse added in v0.11.0

type GetRealTimeTimeseriesResponse struct {
	Data          []RealTimeTimeseriesDatapoint `json:"data,omitempty"`
	TotalRowCount int64                         `json:"total_row_count,omitempty"`
	Timeframe     []int64                       `json:"timeframe,omitempty"`
}

type GetRealtimeBreakdownParams added in v0.11.0

type GetRealtimeBreakdownParams struct {
	Dimension      string
	Timestamp      float64
	Filters        []string
	OrderBy        string
	OrderDirection string
}

type GetRealtimeHistogramTimeseriesParams added in v0.11.0

type GetRealtimeHistogramTimeseriesParams struct {
	Filters []string
}

type GetRealtimeTimeseriesParams added in v0.11.0

type GetRealtimeTimeseriesParams struct {
	Filters []string
}

type Incident added in v0.11.0

type Incident struct {
	Threshold                  float64                    `json:"threshold,omitempty"`
	Status                     string                     `json:"status,omitempty"`
	StartedAt                  string                     `json:"started_at,omitempty"`
	Severity                   string                     `json:"severity,omitempty"`
	SampleSizeUnit             string                     `json:"sample_size_unit,omitempty"`
	SampleSize                 int64                      `json:"sample_size,omitempty"`
	ResolvedAt                 string                     `json:"resolved_at,omitempty"`
	Notifications              []IncidentNotification     `json:"notifications,omitempty"`
	NotificationRules          []IncidentNotificationRule `json:"notification_rules,omitempty"`
	Measurement                string                     `json:"measurement,omitempty"`
	MeasuredValueOnClose       float64                    `json:"measured_value_on_close,omitempty"`
	MeasuredValue              float64                    `json:"measured_value,omitempty"`
	IncidentKey                string                     `json:"incident_key,omitempty"`
	Impact                     string                     `json:"impact,omitempty"`
	Id                         string                     `json:"id,omitempty"`
	ErrorDescription           string                     `json:"error_description,omitempty"`
	Description                string                     `json:"description,omitempty"`
	Breakdowns                 []IncidentBreakdown        `json:"breakdowns,omitempty"`
	AffectedViewsPerHourOnOpen int64                      `json:"affected_views_per_hour_on_open,omitempty"`
	AffectedViewsPerHour       int64                      `json:"affected_views_per_hour,omitempty"`
	AffectedViews              int64                      `json:"affected_views,omitempty"`
}

type IncidentBreakdown added in v0.11.0

type IncidentBreakdown struct {
	Value string `json:"value,omitempty"`
	Name  string `json:"name,omitempty"`
	Id    string `json:"id,omitempty"`
}

type IncidentNotification added in v0.11.0

type IncidentNotification struct {
	QueuedAt    string `json:"queued_at,omitempty"`
	Id          int64  `json:"id,omitempty"`
	AttemptedAt string `json:"attempted_at,omitempty"`
}

type IncidentNotificationRule added in v0.11.0

type IncidentNotificationRule struct {
	Status     string             `json:"status,omitempty"`
	Rules      []NotificationRule `json:"rules,omitempty"`
	PropertyId string             `json:"property_id,omitempty"`
	Id         string             `json:"id,omitempty"`
	Action     string             `json:"action,omitempty"`
}

type IncidentResponse added in v0.11.0

type IncidentResponse struct {
	Data      Incident `json:"data,omitempty"`
	Timeframe []int64  `json:"timeframe,omitempty"`
}

type IncidentsApiService added in v0.11.0

type IncidentsApiService service

func (*IncidentsApiService) GetIncident added in v0.11.0

func (a *IncidentsApiService) GetIncident(iNCIDENTID string, opts ...APIOption) (IncidentResponse, error)

func (*IncidentsApiService) ListIncidents added in v0.11.0

func (a *IncidentsApiService) ListIncidents(opts ...APIOption) (ListIncidentsResponse, error)

ListIncidents optionally accepts the APIOption of WithParams(*ListIncidentsParams).

func (*IncidentsApiService) ListRelatedIncidents added in v0.11.0

func (a *IncidentsApiService) ListRelatedIncidents(iNCIDENTID string, opts ...APIOption) (ListRelatedIncidentsResponse, error)

ListRelatedIncidents optionally accepts the APIOption of WithParams(*ListRelatedIncidentsParams).

type InputFile

type InputFile struct {
	ContainerFormat string       `json:"container_format,omitempty"`
	Tracks          []InputTrack `json:"tracks,omitempty"`
}

type InputInfo

type InputInfo struct {
	Settings InputSettings `json:"settings,omitempty"`
	File     InputFile     `json:"file,omitempty"`
}

type InputSettings

type InputSettings struct {
	// The web address of the file that Mux should download and use. * For subtitles text tracks, the url is the location of subtitle/captions file. Mux supports [SubRip Text (SRT)](https://en.wikipedia.org/wiki/SubRip) and [Web Video Text Tracks](https://www.w3.org/TR/webvtt1/) format for ingesting Subtitles and Closed Captions. * For Watermarking or Overlay, the url is the location of the watermark image. * When creating clips from existing Mux assets, the url is defined with `mux://assets/{asset_id}` template where `asset_id` is the Asset Identifier for creating the clip from.
	Url             string                       `json:"url,omitempty"`
	OverlaySettings InputSettingsOverlaySettings `json:"overlay_settings,omitempty"`
	// The time offset in seconds from the beginning of the video indicating the clip's starting marker. The default value is 0 when not included. This parameter is only applicable for creating clips when `input.url` has `mux://assets/{asset_id}` format.
	StartTime float64 `json:"start_time,omitempty"`
	// The time offset in seconds from the beginning of the video, indicating the clip's ending marker. The default value is the duration of the video when not included. This parameter is only applicable for creating clips when `input.url` has `mux://assets/{asset_id}` format.
	EndTime float64 `json:"end_time,omitempty"`
	// This parameter is required for the `text` track type.
	Type string `json:"type,omitempty"`
	// Type of text track. This parameter only supports subtitles value. For more information on Subtitles / Closed Captions, [see this blog post](https://mux.com/blog/subtitles-captions-webvtt-hls-and-those-magic-flags/). This parameter is required for `text` track type.
	TextType string `json:"text_type,omitempty"`
	// The language code value must be a valid [BCP 47](https://tools.ietf.org/html/bcp47) specification compliant value. For example, en for English or en-US for the US version of English. This parameter is required for text type and subtitles text type track.
	LanguageCode string `json:"language_code,omitempty"`
	// The name of the track containing a human-readable description. This value must be unique across all text type and subtitles `text` type tracks. The hls manifest will associate a subtitle text track with this value. For example, the value should be \"English\" for subtitles text track with language_code as en. This optional parameter should be used only for `text` type and subtitles `text` type track. If this parameter is not included, Mux will auto-populate based on the `input[].language_code` value.
	Name string `json:"name,omitempty"`
	// Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH). This optional parameter should be used for `text` type and subtitles `text` type tracks.
	ClosedCaptions bool `json:"closed_captions,omitempty"`
	// This optional parameter should be used for `text` type and subtitles `text` type tracks.
	Passthrough string `json:"passthrough,omitempty"`
}

An array of objects that each describe an input file to be used to create the asset. As a shortcut, `input` can also be a string URL for a file when only one input file is used. See `input[].url` for requirements.

type InputSettingsOverlaySettings

type InputSettingsOverlaySettings struct {
	// Where the vertical positioning of the overlay/watermark should begin from. Defaults to `\"top\"`
	VerticalAlign string `json:"vertical_align,omitempty"`
	// The distance from the vertical_align starting point and the image's closest edge. Can be expressed as a percent (\"10%\") or as a pixel value (\"100px\"). Negative values will move the overlay offscreen. In the case of 'middle', a positive value will shift the overlay towards the bottom and and a negative value will shift it towards the top.
	VerticalMargin string `json:"vertical_margin,omitempty"`
	// Where the horizontal positioning of the overlay/watermark should begin from.
	HorizontalAlign string `json:"horizontal_align,omitempty"`
	// The distance from the horizontal_align starting point and the image's closest edge. Can be expressed as a percent (\"10%\") or as a pixel value (\"100px\"). Negative values will move the overlay offscreen. In the case of 'center', a positive value will shift the image towards the right and and a negative value will shift it towards the left.
	HorizontalMargin string `json:"horizontal_margin,omitempty"`
	// How wide the overlay should appear. Can be expressed as a percent (\"10%\") or as a pixel value (\"100px\"). If both width and height are left blank the width will be the true pixels of the image, applied as if the video has been scaled to fit a 1920x1080 frame. If height is supplied with no width, the width will scale proportionally to the height.
	Width string `json:"width,omitempty"`
	// How tall the overlay should appear. Can be expressed as a percent (\"10%\") or as a pixel value (\"100px\"). If both width and height are left blank the height will be the true pixels of the image, applied as if the video has been scaled to fit a 1920x1080 frame. If width is supplied with no height, the height will scale proportionally to the width.
	Height string `json:"height,omitempty"`
	// How opaque the overlay should appear, expressed as a percent. (Default 100%)
	Opacity string `json:"opacity,omitempty"`
}

An object that describes how the image file referenced in url should be placed over the video (i.e. watermarking).

type InputTrack

type InputTrack struct {
	Type       string  `json:"type,omitempty"`
	Duration   float64 `json:"duration,omitempty"`
	Encoding   string  `json:"encoding,omitempty"`
	Width      int64   `json:"width,omitempty"`
	Height     int64   `json:"height,omitempty"`
	FrameRate  float64 `json:"frame_rate,omitempty"`
	SampleRate int64   `json:"sample_rate,omitempty"`
	SampleSize int64   `json:"sample_size,omitempty"`
	Channels   int64   `json:"channels,omitempty"`
}

type Insight

type Insight struct {
	TotalWatchTime      int64   `json:"total_watch_time,omitempty"`
	TotalViews          int64   `json:"total_views,omitempty"`
	NegativeImpactScore float32 `json:"negative_impact_score,omitempty"`
	Metric              float64 `json:"metric,omitempty"`
	FilterValue         string  `json:"filter_value,omitempty"`
	FilterColumn        string  `json:"filter_column,omitempty"`
}

type ListAllMetricValuesParams

type ListAllMetricValuesParams struct {
	Timeframe []string
	Filters   []string
	Dimension string
	Value     string
}

type ListAllMetricValuesResponse

type ListAllMetricValuesResponse struct {
	Data          []Score `json:"data,omitempty"`
	TotalRowCount int64   `json:"total_row_count,omitempty"`
	Timeframe     []int64 `json:"timeframe,omitempty"`
}

type ListAssetsParams

type ListAssetsParams struct {
	Limit        int32
	Page         int32
	LiveStreamId string
	UploadId     string
}

type ListAssetsResponse

type ListAssetsResponse struct {
	Data []Asset `json:"data,omitempty"`
}

type ListBreakdownValuesParams

type ListBreakdownValuesParams struct {
	GroupBy        string
	Measurement    string
	Filters        []string
	Limit          int32
	Page           int32
	OrderBy        string
	OrderDirection string
	Timeframe      []string
}

type ListBreakdownValuesResponse

type ListBreakdownValuesResponse struct {
	Data          []BreakdownValue `json:"data,omitempty"`
	TotalRowCount int64            `json:"total_row_count,omitempty"`
	Timeframe     []int64          `json:"timeframe,omitempty"`
}

type ListDeliveryUsageParams added in v0.4.0

type ListDeliveryUsageParams struct {
	Page      int32
	Limit     int32
	AssetId   string
	Timeframe []string
}

type ListDeliveryUsageResponse added in v0.4.0

type ListDeliveryUsageResponse struct {
	Data          []DeliveryReport `json:"data,omitempty"`
	TotalRowCount int64            `json:"total_row_count,omitempty"`
	Timeframe     []int64          `json:"timeframe,omitempty"`
	// Number of assets returned in this response. Default value is 100.
	Limit int64 `json:"limit,omitempty"`
}

type ListDimensionValuesParams added in v0.11.0

type ListDimensionValuesParams struct {
	Limit     int32
	Page      int32
	Filters   []string
	Timeframe []string
}

type ListDimensionValuesResponse added in v0.11.0

type ListDimensionValuesResponse struct {
	Data          []DimensionValue `json:"data,omitempty"`
	TotalRowCount int64            `json:"total_row_count,omitempty"`
	Timeframe     []int64          `json:"timeframe,omitempty"`
}

type ListDimensionsResponse added in v0.11.0

type ListDimensionsResponse struct {
	Data          ListFiltersResponseData `json:"data,omitempty"`
	TotalRowCount int64                   `json:"total_row_count,omitempty"`
	Timeframe     []int64                 `json:"timeframe,omitempty"`
}

type ListDirectUploadsParams

type ListDirectUploadsParams struct {
	Limit int32
	Page  int32
}

type ListErrorsParams

type ListErrorsParams struct {
	Filters   []string
	Timeframe []string
}

type ListErrorsResponse

type ListErrorsResponse struct {
	Data          []Error `json:"data,omitempty"`
	TotalRowCount int64   `json:"total_row_count,omitempty"`
	Timeframe     []int64 `json:"timeframe,omitempty"`
}

type ListExportsResponse

type ListExportsResponse struct {
	Data          []string `json:"data,omitempty"`
	TotalRowCount int64    `json:"total_row_count,omitempty"`
	Timeframe     []int64  `json:"timeframe,omitempty"`
}

type ListFilterValuesParams

type ListFilterValuesParams struct {
	Limit     int32
	Page      int32
	Filters   []string
	Timeframe []string
}

type ListFilterValuesResponse

type ListFilterValuesResponse struct {
	Data          []FilterValue `json:"data,omitempty"`
	TotalRowCount int64         `json:"total_row_count,omitempty"`
	Timeframe     []int64       `json:"timeframe,omitempty"`
}

type ListFiltersResponse

type ListFiltersResponse struct {
	Data          ListFiltersResponseData `json:"data,omitempty"`
	TotalRowCount int64                   `json:"total_row_count,omitempty"`
	Timeframe     []int64                 `json:"timeframe,omitempty"`
}

type ListFiltersResponseData

type ListFiltersResponseData struct {
	Basic    []string `json:"basic,omitempty"`
	Advanced []string `json:"advanced,omitempty"`
}

type ListIncidentsParams added in v0.11.0

type ListIncidentsParams struct {
	Limit          int32
	Page           int32
	OrderBy        string
	OrderDirection string
	Status         string
	Severity       string
}

type ListIncidentsResponse added in v0.11.0

type ListIncidentsResponse struct {
	Data          []Incident `json:"data,omitempty"`
	TotalRowCount int64      `json:"total_row_count,omitempty"`
	Timeframe     []int64    `json:"timeframe,omitempty"`
}

type ListInsightsParams

type ListInsightsParams struct {
	Measurement    string
	OrderDirection string
	Timeframe      []string
}

type ListInsightsResponse

type ListInsightsResponse struct {
	Data          []Insight `json:"data,omitempty"`
	TotalRowCount int64     `json:"total_row_count,omitempty"`
	Timeframe     []int64   `json:"timeframe,omitempty"`
}

type ListLiveStreamsParams

type ListLiveStreamsParams struct {
	Limit     int32
	Page      int32
	StreamKey string
}

type ListLiveStreamsResponse

type ListLiveStreamsResponse struct {
	Data []LiveStream `json:"data,omitempty"`
}

type ListRealTimeDimensionsResponse added in v0.11.0

type ListRealTimeDimensionsResponse struct {
	Data          []ListRealTimeDimensionsResponseData `json:"data,omitempty"`
	TotalRowCount int64                                `json:"total_row_count,omitempty"`
	Timeframe     []int64                              `json:"timeframe,omitempty"`
}

type ListRealTimeDimensionsResponseData added in v0.11.0

type ListRealTimeDimensionsResponseData struct {
	Name        string `json:"name,omitempty"`
	DisplayName string `json:"display_name,omitempty"`
}

type ListRealTimeMetricsResponse added in v0.11.0

type ListRealTimeMetricsResponse struct {
	Data          []ListRealTimeDimensionsResponseData `json:"data,omitempty"`
	TotalRowCount int64                                `json:"total_row_count,omitempty"`
	Timeframe     []int64                              `json:"timeframe,omitempty"`
}

type ListRelatedIncidentsParams added in v0.11.0

type ListRelatedIncidentsParams struct {
	Limit          int32
	Page           int32
	OrderBy        string
	OrderDirection string
}

type ListRelatedIncidentsResponse added in v0.11.0

type ListRelatedIncidentsResponse struct {
	Data          []Incident `json:"data,omitempty"`
	TotalRowCount int64      `json:"total_row_count,omitempty"`
	Timeframe     []int64    `json:"timeframe,omitempty"`
}

type ListSigningKeysResponse

type ListSigningKeysResponse struct {
	Data []SigningKey `json:"data,omitempty"`
}

type ListUploadsResponse

type ListUploadsResponse struct {
	Data []Upload `json:"data,omitempty"`
}

type ListUrlSigningKeysParams

type ListUrlSigningKeysParams struct {
	Limit int32
	Page  int32
}

type ListVideoViewExportsResponse added in v0.14.0

type ListVideoViewExportsResponse struct {
	Data          []ExportDate `json:"data,omitempty"`
	TotalRowCount int32        `json:"total_row_count,omitempty"`
	Timeframe     []int32      `json:"timeframe,omitempty"`
}

type ListVideoViewsParams

type ListVideoViewsParams struct {
	Limit          int32
	Page           int32
	ViewerId       string
	ErrorId        int32
	OrderDirection string
	Filters        []string
	Timeframe      []string
}

type ListVideoViewsResponse

type ListVideoViewsResponse struct {
	Data          []AbridgedVideoView `json:"data,omitempty"`
	TotalRowCount int64               `json:"total_row_count,omitempty"`
	Timeframe     []int64             `json:"timeframe,omitempty"`
}

type LiveStream

type LiveStream struct {
	// Unique identifier for the Live Stream. Max 255 characters.
	Id string `json:"id,omitempty"`
	// Time the Live Stream was created, defined as a Unix timestamp (seconds since epoch).
	CreatedAt string `json:"created_at,omitempty"`
	// Unique key used for streaming to a Mux RTMP endpoint. This should be considered as sensitive as credentials, anyone with this stream key can begin streaming.
	StreamKey string `json:"stream_key,omitempty"`
	// The Asset that is currently being created if there is an active broadcast.
	ActiveAssetId string `json:"active_asset_id,omitempty"`
	// An array of strings with the most recent Assets that were created from this live stream.
	RecentAssetIds []string `json:"recent_asset_ids,omitempty"`
	// `idle` indicates that there is no active broadcast. `active` indicates that there is an active broadcast and `disabled` status indicates that no future RTMP streams can be published.
	Status string `json:"status,omitempty"`
	// An array of Playback ID objects. Use these to create HLS playback URLs. See [Play your videos](https://docs.mux.com/guides/video/play-your-videos) for more details.
	PlaybackIds      []PlaybackId       `json:"playback_ids,omitempty"`
	NewAssetSettings CreateAssetRequest `json:"new_asset_settings,omitempty"`
	// Arbitrary metadata set for the asset. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The live stream only processes the audio track if the value is set to true. Mux drops the video track if broadcasted.
	AudioOnly bool `json:"audio_only,omitempty"`
	// When live streaming software disconnects from Mux, either intentionally or due to a drop in the network, the Reconnect Window is the time in seconds that Mux should wait for the streaming software to reconnect before considering the live stream finished and completing the recorded asset. **Min**: 0.1s. **Max**: 300s (5 minutes).
	ReconnectWindow float32 `json:"reconnect_window,omitempty"`
	// Latency is the time from when the streamer does something in real life to when you see it happen in the player. Set this if you want lower latency for your live stream. **Note**: Reconnect windows are incompatible with Reduced Latency and will always be set to zero (0) seconds. See the [Reduce live stream latency guide](https://docs.mux.com/guides/video/reduce-live-stream-latency) to understand the tradeoffs.
	ReducedLatency bool `json:"reduced_latency,omitempty"`
	// Latency is the time from when the streamer does something in real life to when you see it happen in the player. Setting this option will enable compatibility with the LL-HLS specification for low-latency streaming. This typically has lower latency than Reduced Latency streams, and cannot be combined with Reduced Latency. Note: Reconnect windows are incompatible with Low Latency and will always be set to zero (0) seconds.
	LowLatency bool `json:"low_latency,omitempty"`
	// Each Simulcast Target contains configuration details to broadcast (or \"restream\") a live stream to a third-party streaming service. [See the Stream live to 3rd party platforms guide](https://docs.mux.com/guides/video/stream-live-to-3rd-party-platforms).
	SimulcastTargets []SimulcastTarget `json:"simulcast_targets,omitempty"`
	// True means this live stream is a test live stream. Test live streams can be used to help evaluate the Mux Video APIs for free. There is no limit on the number of test live streams, but they are watermarked with the Mux logo, and limited to 5 minutes. The test live stream is disabled after the stream is active for 5 mins and the recorded asset also deleted after 24 hours.
	Test bool `json:"test,omitempty"`
}

type LiveStreamEmbeddedSubtitleSettings added in v1.1.0

type LiveStreamEmbeddedSubtitleSettings struct {
	// A name for this live stream subtitle track.
	Name string `json:"name,omitempty"`
	// Arbitrary metadata set for the live stream subtitle track. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The language of the subtitle stream. Value must be BCP 47 compliant.
	LanguageCode string `json:"language_code,omitempty"`
	// CEA-608 caption channel to read data from.
	LanguageChannel string `json:"language_channel,omitempty"`
}

type LiveStreamResponse

type LiveStreamResponse struct {
	Data LiveStream `json:"data,omitempty"`
}

type LiveStreamsApiService

type LiveStreamsApiService service

func (*LiveStreamsApiService) CreateLiveStream

func (a *LiveStreamsApiService) CreateLiveStream(createLiveStreamRequest CreateLiveStreamRequest, opts ...APIOption) (LiveStreamResponse, error)

func (*LiveStreamsApiService) CreateLiveStreamPlaybackId

func (a *LiveStreamsApiService) CreateLiveStreamPlaybackId(lIVESTREAMID string, createPlaybackIdRequest CreatePlaybackIdRequest, opts ...APIOption) (CreatePlaybackIdResponse, error)

func (*LiveStreamsApiService) CreateLiveStreamSimulcastTarget added in v0.4.0

func (a *LiveStreamsApiService) CreateLiveStreamSimulcastTarget(lIVESTREAMID string, createSimulcastTargetRequest CreateSimulcastTargetRequest, opts ...APIOption) (SimulcastTargetResponse, error)

func (*LiveStreamsApiService) DeleteLiveStream

func (a *LiveStreamsApiService) DeleteLiveStream(lIVESTREAMID string, opts ...APIOption) error

func (*LiveStreamsApiService) DeleteLiveStreamPlaybackId

func (a *LiveStreamsApiService) DeleteLiveStreamPlaybackId(lIVESTREAMID string, pLAYBACKID string, opts ...APIOption) error

func (*LiveStreamsApiService) DeleteLiveStreamSimulcastTarget added in v0.4.0

func (a *LiveStreamsApiService) DeleteLiveStreamSimulcastTarget(lIVESTREAMID string, sIMULCASTTARGETID string, opts ...APIOption) error

func (*LiveStreamsApiService) DisableLiveStream added in v0.10.0

func (a *LiveStreamsApiService) DisableLiveStream(lIVESTREAMID string, opts ...APIOption) (DisableLiveStreamResponse, error)

func (*LiveStreamsApiService) EnableLiveStream added in v0.10.0

func (a *LiveStreamsApiService) EnableLiveStream(lIVESTREAMID string, opts ...APIOption) (EnableLiveStreamResponse, error)

func (*LiveStreamsApiService) GetLiveStream

func (a *LiveStreamsApiService) GetLiveStream(lIVESTREAMID string, opts ...APIOption) (LiveStreamResponse, error)

func (*LiveStreamsApiService) GetLiveStreamPlaybackId added in v1.0.1

func (a *LiveStreamsApiService) GetLiveStreamPlaybackId(lIVESTREAMID string, pLAYBACKID string, opts ...APIOption) (GetLiveStreamPlaybackIdResponse, error)

func (*LiveStreamsApiService) GetLiveStreamSimulcastTarget added in v0.4.0

func (a *LiveStreamsApiService) GetLiveStreamSimulcastTarget(lIVESTREAMID string, sIMULCASTTARGETID string, opts ...APIOption) (SimulcastTargetResponse, error)

func (*LiveStreamsApiService) ListLiveStreams

func (a *LiveStreamsApiService) ListLiveStreams(opts ...APIOption) (ListLiveStreamsResponse, error)

ListLiveStreams optionally accepts the APIOption of WithParams(*ListLiveStreamsParams).

func (*LiveStreamsApiService) ResetStreamKey

func (a *LiveStreamsApiService) ResetStreamKey(lIVESTREAMID string, opts ...APIOption) (LiveStreamResponse, error)

func (*LiveStreamsApiService) SignalLiveStreamComplete

func (a *LiveStreamsApiService) SignalLiveStreamComplete(lIVESTREAMID string, opts ...APIOption) (SignalLiveStreamCompleteResponse, error)

func (*LiveStreamsApiService) UpdateLiveStreamEmbeddedSubtitles added in v1.1.0

func (a *LiveStreamsApiService) UpdateLiveStreamEmbeddedSubtitles(lIVESTREAMID string, updateLiveStreamEmbeddedSubtitlesRequest UpdateLiveStreamEmbeddedSubtitlesRequest, opts ...APIOption) (LiveStreamResponse, error)

type Metric

type Metric struct {
	Value       float64 `json:"value,omitempty"`
	Type        string  `json:"type,omitempty"`
	Name        string  `json:"name,omitempty"`
	Metric      string  `json:"metric,omitempty"`
	Measurement string  `json:"measurement,omitempty"`
}

type MetricsApiService

type MetricsApiService service

func (*MetricsApiService) GetMetricTimeseriesData

func (a *MetricsApiService) GetMetricTimeseriesData(mETRICID string, opts ...APIOption) (GetMetricTimeseriesDataResponse, error)

GetMetricTimeseriesData optionally accepts the APIOption of WithParams(*GetMetricTimeseriesDataParams).

func (*MetricsApiService) GetOverallValues

func (a *MetricsApiService) GetOverallValues(mETRICID string, opts ...APIOption) (GetOverallValuesResponse, error)

GetOverallValues optionally accepts the APIOption of WithParams(*GetOverallValuesParams).

func (*MetricsApiService) ListAllMetricValues

func (a *MetricsApiService) ListAllMetricValues(opts ...APIOption) (ListAllMetricValuesResponse, error)

ListAllMetricValues optionally accepts the APIOption of WithParams(*ListAllMetricValuesParams).

func (*MetricsApiService) ListBreakdownValues

func (a *MetricsApiService) ListBreakdownValues(mETRICID string, opts ...APIOption) (ListBreakdownValuesResponse, error)

ListBreakdownValues optionally accepts the APIOption of WithParams(*ListBreakdownValuesParams).

func (*MetricsApiService) ListInsights

func (a *MetricsApiService) ListInsights(mETRICID string, opts ...APIOption) (ListInsightsResponse, error)

ListInsights optionally accepts the APIOption of WithParams(*ListInsightsParams).

type NotFoundError added in v0.3.0

type NotFoundError struct {
	// contains filtered or unexported fields
}

404 Error

func (NotFoundError) Body added in v0.3.0

func (e NotFoundError) Body() []byte

func (NotFoundError) Error added in v0.3.0

func (e NotFoundError) Error() string

type NotificationRule added in v0.11.0

type NotificationRule struct {
	Value string `json:"value,omitempty"`
	Name  string `json:"name,omitempty"`
	Id    string `json:"id,omitempty"`
}

type OverallValues

type OverallValues struct {
	Value          float64 `json:"value,omitempty"`
	TotalWatchTime int64   `json:"total_watch_time,omitempty"`
	TotalViews     int64   `json:"total_views,omitempty"`
	GlobalValue    float64 `json:"global_value,omitempty"`
}

type PlaybackIDApiService added in v0.13.0

type PlaybackIDApiService service

func (*PlaybackIDApiService) GetAssetOrLivestreamId added in v0.13.0

func (a *PlaybackIDApiService) GetAssetOrLivestreamId(pLAYBACKID string, opts ...APIOption) (GetAssetOrLiveStreamIdResponse, error)

type PlaybackId

type PlaybackId struct {
	// Unique identifier for the PlaybackID
	Id     string         `json:"id,omitempty"`
	Policy PlaybackPolicy `json:"policy,omitempty"`
}

type PlaybackPolicy

type PlaybackPolicy string

PlaybackPolicy : * `public` playback IDs are accessible by constructing an HLS url like `https://stream.mux.com/${PLAYBACK_ID}` * `signed` playback IDS should be used with tokens `https://stream.mux.com/${PLAYBACK_ID}?token={TOKEN}`. See [Secure video playback](https://docs.mux.com/guides/video/secure-video-playback) for details about creating tokens.

const (
	PUBLIC PlaybackPolicy = "public"
	SIGNED PlaybackPolicy = "signed"
)

List of PlaybackPolicy

type RealTimeApiService added in v0.11.0

type RealTimeApiService service

func (*RealTimeApiService) GetRealtimeBreakdown added in v0.11.0

func (a *RealTimeApiService) GetRealtimeBreakdown(rEALTIMEMETRICID string, opts ...APIOption) (GetRealTimeBreakdownResponse, error)

GetRealtimeBreakdown optionally accepts the APIOption of WithParams(*GetRealtimeBreakdownParams).

func (*RealTimeApiService) GetRealtimeHistogramTimeseries added in v0.11.0

func (a *RealTimeApiService) GetRealtimeHistogramTimeseries(rEALTIMEHISTOGRAMMETRICID string, opts ...APIOption) (GetRealTimeHistogramTimeseriesResponse, error)

GetRealtimeHistogramTimeseries optionally accepts the APIOption of WithParams(*GetRealtimeHistogramTimeseriesParams).

func (*RealTimeApiService) GetRealtimeTimeseries added in v0.11.0

func (a *RealTimeApiService) GetRealtimeTimeseries(rEALTIMEMETRICID string, opts ...APIOption) (GetRealTimeTimeseriesResponse, error)

GetRealtimeTimeseries optionally accepts the APIOption of WithParams(*GetRealtimeTimeseriesParams).

func (*RealTimeApiService) ListRealtimeDimensions added in v0.11.0

func (a *RealTimeApiService) ListRealtimeDimensions(opts ...APIOption) (ListRealTimeDimensionsResponse, error)

func (*RealTimeApiService) ListRealtimeMetrics added in v0.11.0

func (a *RealTimeApiService) ListRealtimeMetrics(opts ...APIOption) (ListRealTimeMetricsResponse, error)

type RealTimeBreakdownValue added in v0.11.0

type RealTimeBreakdownValue struct {
	Value             string  `json:"value,omitempty"`
	NegativeImpact    int64   `json:"negative_impact,omitempty"`
	MetricValue       float64 `json:"metric_value,omitempty"`
	DisplayValue      string  `json:"display_value,omitempty"`
	ConcurrentViewers int64   `json:"concurrent_viewers,omitempty"`
}

type RealTimeHistogramTimeseriesBucket added in v0.11.0

type RealTimeHistogramTimeseriesBucket struct {
	Start int64 `json:"start,omitempty"`
	End   int64 `json:"end,omitempty"`
}

type RealTimeHistogramTimeseriesBucketValues added in v0.11.0

type RealTimeHistogramTimeseriesBucketValues struct {
	Percentage float64 `json:"percentage,omitempty"`
	Count      int64   `json:"count,omitempty"`
}

type RealTimeHistogramTimeseriesDatapoint added in v0.11.0

type RealTimeHistogramTimeseriesDatapoint struct {
	Timestamp     string                                    `json:"timestamp,omitempty"`
	Sum           int64                                     `json:"sum,omitempty"`
	P95           float64                                   `json:"p95,omitempty"`
	Median        float64                                   `json:"median,omitempty"`
	MaxPercentage float64                                   `json:"max_percentage,omitempty"`
	BucketValues  []RealTimeHistogramTimeseriesBucketValues `json:"bucket_values,omitempty"`
	Average       float64                                   `json:"average,omitempty"`
}

type RealTimeTimeseriesDatapoint added in v0.11.0

type RealTimeTimeseriesDatapoint struct {
	Value             float64 `json:"value,omitempty"`
	Date              string  `json:"date,omitempty"`
	ConcurrentViewers int64   `json:"concurrent_viewers,omitempty"`
}

type Score

type Score struct {
	WatchTime int64    `json:"watch_time,omitempty"`
	ViewCount int64    `json:"view_count,omitempty"`
	Name      string   `json:"name,omitempty"`
	Value     float64  `json:"value,omitempty"`
	Metric    string   `json:"metric,omitempty"`
	Items     []Metric `json:"items,omitempty"`
}

type ServiceError added in v0.3.0

type ServiceError struct {
	// contains filtered or unexported fields
}

5XX Error

func (ServiceError) Body added in v0.3.0

func (e ServiceError) Body() []byte

func (ServiceError) Code added in v0.3.0

func (e ServiceError) Code() int

func (ServiceError) Error added in v0.3.0

func (e ServiceError) Error() string

type SignalLiveStreamCompleteResponse

type SignalLiveStreamCompleteResponse struct {
	Data map[string]interface{} `json:"data,omitempty"`
}

type SigningKey

type SigningKey struct {
	// Unique identifier for the Signing Key.
	Id string `json:"id,omitempty"`
	// Time at which the object was created. Measured in seconds since the Unix epoch.
	CreatedAt string `json:"created_at,omitempty"`
	// A Base64 encoded private key that can be used with the RS256 algorithm when creating a [JWT](https://jwt.io/). **Note that this value is only returned once when creating a URL signing key.**
	PrivateKey string `json:"private_key,omitempty"`
}

type SigningKeyResponse

type SigningKeyResponse struct {
	Data SigningKey `json:"data,omitempty"`
}

type SimulcastTarget added in v0.4.0

type SimulcastTarget struct {
	// ID of the Simulcast Target
	Id string `json:"id,omitempty"`
	// Arbitrary Metadata set when creating a simulcast target.
	Passthrough string `json:"passthrough,omitempty"`
	// The current status of the simulcast target. See Statuses below for detailed description.   * `idle`: Default status. When the parent live stream is in disconnected status, simulcast targets will be idle state.   * `starting`: The simulcast target transitions into this state when the parent live stream transition into connected state.   * `broadcasting`: The simulcast target has successfully connected to the third party live streaming service and is pushing video to that service.   * `errored`: The simulcast target encountered an error either while attempting to connect to the third party live streaming service, or mid-broadcasting. Compared to other errored statuses in the Mux Video API, a simulcast may transition back into the broadcasting state if a connection with the service can be re-established.
	Status string `json:"status,omitempty"`
	// Stream Key represents an stream identifier for the third party live streaming service to simulcast the parent live stream too.
	StreamKey string `json:"stream_key,omitempty"`
	// RTMP hostname including the application name for the third party live streaming service.
	Url string `json:"url,omitempty"`
}

type SimulcastTargetResponse added in v0.4.0

type SimulcastTargetResponse struct {
	Data SimulcastTarget `json:"data,omitempty"`
}

type TooManyRequestsError added in v0.3.0

type TooManyRequestsError struct {
	// contains filtered or unexported fields
}

429 Error

func (TooManyRequestsError) Body added in v0.3.0

func (e TooManyRequestsError) Body() []byte

func (TooManyRequestsError) Error added in v0.3.0

func (e TooManyRequestsError) Error() string

type Track

type Track struct {
	// Unique identifier for the Track
	Id string `json:"id,omitempty"`
	// The type of track
	Type string `json:"type,omitempty"`
	// The duration in seconds of the track media. This parameter is not set for the `text` type track. This field is optional and may not be set. The top level `duration` field of an asset will always be set.
	Duration float64 `json:"duration,omitempty"`
	// The maximum width in pixels available for the track. Only set for the `video` type track.
	MaxWidth int64 `json:"max_width,omitempty"`
	// The maximum height in pixels available for the track. Only set for the `video` type track.
	MaxHeight int64 `json:"max_height,omitempty"`
	// The maximum frame rate available for the track. Only set for the `video` type track. This field may return `-1` if the frame rate of the input cannot be reliably determined.
	MaxFrameRate float64 `json:"max_frame_rate,omitempty"`
	// The maximum number of audio channels the track supports. Only set for the `audio` type track.
	MaxChannels int64 `json:"max_channels,omitempty"`
	// Only set for the `audio` type track.
	MaxChannelLayout string `json:"max_channel_layout,omitempty"`
	// This parameter is set only for the `text` type track.
	TextType string `json:"text_type,omitempty"`
	// The language code value represents [BCP 47](https://tools.ietf.org/html/bcp47) specification compliant value. For example, `en` for English or `en-US` for the US version of English. This parameter is set for `text` type and `subtitles` text type track.
	LanguageCode string `json:"language_code,omitempty"`
	// The name of the track containing a human-readable description. The hls manifest will associate a subtitle text track with this value. For example, the value is \"English\" for subtitles text track for the `language_code` value of `en-US`. This parameter is set for the `text` type and `subtitles` text type track.
	Name string `json:"name,omitempty"`
	// Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH). This parameter is set for the `text` type and `subtitles` text type track.
	ClosedCaptions bool `json:"closed_captions,omitempty"`
	// Arbitrary metadata set for the track either when creating the asset or track. This parameter is set for `text` type and `subtitles` text type track. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
}

type URLSigningKeysApiService

type URLSigningKeysApiService service

func (*URLSigningKeysApiService) CreateUrlSigningKey

func (a *URLSigningKeysApiService) CreateUrlSigningKey(opts ...APIOption) (SigningKeyResponse, error)

func (*URLSigningKeysApiService) DeleteUrlSigningKey

func (a *URLSigningKeysApiService) DeleteUrlSigningKey(sIGNINGKEYID string, opts ...APIOption) error

func (*URLSigningKeysApiService) GetUrlSigningKey

func (a *URLSigningKeysApiService) GetUrlSigningKey(sIGNINGKEYID string, opts ...APIOption) (SigningKeyResponse, error)

func (*URLSigningKeysApiService) ListUrlSigningKeys

func (a *URLSigningKeysApiService) ListUrlSigningKeys(opts ...APIOption) (ListSigningKeysResponse, error)

ListUrlSigningKeys optionally accepts the APIOption of WithParams(*ListUrlSigningKeysParams).

type UnauthorizedError added in v0.3.0

type UnauthorizedError struct {
	// contains filtered or unexported fields
}

401 Error

func (UnauthorizedError) Body added in v0.3.0

func (e UnauthorizedError) Body() []byte

func (UnauthorizedError) Error added in v0.3.0

func (e UnauthorizedError) Error() string

type UpdateAssetMasterAccessRequest added in v0.7.0

type UpdateAssetMasterAccessRequest struct {
	// Add or remove access to the master version of the video.
	MasterAccess string `json:"master_access,omitempty"`
}

type UpdateAssetMp4SupportRequest

type UpdateAssetMp4SupportRequest struct {
	// String value for the level of mp4 support
	Mp4Support string `json:"mp4_support,omitempty"`
}

type UpdateLiveStreamEmbeddedSubtitlesRequest added in v1.1.0

type UpdateLiveStreamEmbeddedSubtitlesRequest struct {
	// Describe the embedded subtitle contents of the incoming live stream.
	EmbeddedSubtitles []LiveStreamEmbeddedSubtitleSettings `json:"embedded_subtitles,omitempty"`
}

type Upload

type Upload struct {
	// Unique identifier for the Direct Upload.
	Id string `json:"id,omitempty"`
	// Max time in seconds for the signed upload URL to be valid. If a successful upload has not occurred before the timeout limit, the direct upload is marked `timed_out`
	Timeout          int32  `json:"timeout,omitempty"`
	Status           string `json:"status,omitempty"`
	NewAssetSettings Asset  `json:"new_asset_settings,omitempty"`
	// Only set once the upload is in the `asset_created` state.
	AssetId string      `json:"asset_id,omitempty"`
	Error   UploadError `json:"error,omitempty"`
	// If the upload URL will be used in a browser, you must specify the origin in order for the signed URL to have the correct CORS headers.
	CorsOrigin string `json:"cors_origin,omitempty"`
	// The URL to upload the associated source media to.
	Url string `json:"url,omitempty"`
	// Indicates if this is a test Direct Upload, in which case the Asset that gets created will be a `test` Asset.
	Test bool `json:"test,omitempty"`
}

type UploadError

type UploadError struct {
	// Label for the specific error
	Type string `json:"type,omitempty"`
	// Human readable error message
	Message string `json:"message,omitempty"`
}

Only set if an error occurred during asset creation.

type UploadResponse

type UploadResponse struct {
	Data Upload `json:"data,omitempty"`
}

type VideoView

type VideoView struct {
	ViewTotalUpscaling             string           `json:"view_total_upscaling,omitempty"`
	PrerollAdAssetHostname         string           `json:"preroll_ad_asset_hostname,omitempty"`
	PlayerSourceDomain             string           `json:"player_source_domain,omitempty"`
	Region                         string           `json:"region,omitempty"`
	ViewerUserAgent                string           `json:"viewer_user_agent,omitempty"`
	PrerollRequested               bool             `json:"preroll_requested,omitempty"`
	PageType                       string           `json:"page_type,omitempty"`
	StartupScore                   string           `json:"startup_score,omitempty"`
	ViewSeekDuration               int64            `json:"view_seek_duration,omitempty"`
	CountryName                    string           `json:"country_name,omitempty"`
	PlayerSourceHeight             int32            `json:"player_source_height,omitempty"`
	Longitude                      string           `json:"longitude,omitempty"`
	BufferingCount                 int64            `json:"buffering_count,omitempty"`
	VideoDuration                  int64            `json:"video_duration,omitempty"`
	PlayerSourceType               string           `json:"player_source_type,omitempty"`
	City                           string           `json:"city,omitempty"`
	ViewId                         string           `json:"view_id,omitempty"`
	PlatformDescription            string           `json:"platform_description,omitempty"`
	VideoStartupPrerollRequestTime int64            `json:"video_startup_preroll_request_time,omitempty"`
	ViewerDeviceName               string           `json:"viewer_device_name,omitempty"`
	VideoSeries                    string           `json:"video_series,omitempty"`
	ViewerApplicationName          string           `json:"viewer_application_name,omitempty"`
	UpdatedAt                      string           `json:"updated_at,omitempty"`
	ViewTotalContentPlaybackTime   int64            `json:"view_total_content_playback_time,omitempty"`
	Cdn                            string           `json:"cdn,omitempty"`
	PlayerInstanceId               string           `json:"player_instance_id,omitempty"`
	VideoLanguage                  string           `json:"video_language,omitempty"`
	PlayerSourceWidth              int32            `json:"player_source_width,omitempty"`
	PlayerErrorMessage             string           `json:"player_error_message,omitempty"`
	PlayerMuxPluginVersion         string           `json:"player_mux_plugin_version,omitempty"`
	Watched                        bool             `json:"watched,omitempty"`
	PlaybackScore                  string           `json:"playback_score,omitempty"`
	PageUrl                        string           `json:"page_url,omitempty"`
	Metro                          string           `json:"metro,omitempty"`
	ViewMaxRequestLatency          int64            `json:"view_max_request_latency,omitempty"`
	RequestsForFirstPreroll        int64            `json:"requests_for_first_preroll,omitempty"`
	ViewTotalDownscaling           string           `json:"view_total_downscaling,omitempty"`
	Latitude                       string           `json:"latitude,omitempty"`
	PlayerSourceHostName           string           `json:"player_source_host_name,omitempty"`
	InsertedAt                     string           `json:"inserted_at,omitempty"`
	ViewEnd                        string           `json:"view_end,omitempty"`
	MuxEmbedVersion                string           `json:"mux_embed_version,omitempty"`
	PlayerLanguage                 string           `json:"player_language,omitempty"`
	PageLoadTime                   int64            `json:"page_load_time,omitempty"`
	ViewerDeviceCategory           string           `json:"viewer_device_category,omitempty"`
	VideoStartupPrerollLoadTime    int64            `json:"video_startup_preroll_load_time,omitempty"`
	PlayerVersion                  string           `json:"player_version,omitempty"`
	WatchTime                      int64            `json:"watch_time,omitempty"`
	PlayerSourceStreamType         string           `json:"player_source_stream_type,omitempty"`
	PrerollAdTagHostname           string           `json:"preroll_ad_tag_hostname,omitempty"`
	ViewerDeviceManufacturer       string           `json:"viewer_device_manufacturer,omitempty"`
	RebufferingScore               string           `json:"rebuffering_score,omitempty"`
	ExperimentName                 string           `json:"experiment_name,omitempty"`
	ViewerOsVersion                string           `json:"viewer_os_version,omitempty"`
	PlayerPreload                  bool             `json:"player_preload,omitempty"`
	BufferingDuration              int64            `json:"buffering_duration,omitempty"`
	PlayerViewCount                int64            `json:"player_view_count,omitempty"`
	PlayerSoftware                 string           `json:"player_software,omitempty"`
	PlayerLoadTime                 int64            `json:"player_load_time,omitempty"`
	PlatformSummary                string           `json:"platform_summary,omitempty"`
	VideoEncodingVariant           string           `json:"video_encoding_variant,omitempty"`
	PlayerWidth                    int32            `json:"player_width,omitempty"`
	ViewSeekCount                  int64            `json:"view_seek_count,omitempty"`
	ViewerExperienceScore          string           `json:"viewer_experience_score,omitempty"`
	ViewErrorId                    int32            `json:"view_error_id,omitempty"`
	VideoVariantName               string           `json:"video_variant_name,omitempty"`
	PrerollPlayed                  bool             `json:"preroll_played,omitempty"`
	ViewerApplicationEngine        string           `json:"viewer_application_engine,omitempty"`
	ViewerOsArchitecture           string           `json:"viewer_os_architecture,omitempty"`
	PlayerErrorCode                string           `json:"player_error_code,omitempty"`
	BufferingRate                  string           `json:"buffering_rate,omitempty"`
	Events                         []VideoViewEvent `json:"events,omitempty"`
	PlayerName                     string           `json:"player_name,omitempty"`
	ViewStart                      string           `json:"view_start,omitempty"`
	ViewAverageRequestThroughput   int64            `json:"view_average_request_throughput,omitempty"`
	VideoProducer                  string           `json:"video_producer,omitempty"`
	ErrorTypeId                    int32            `json:"error_type_id,omitempty"`
	MuxViewerId                    string           `json:"mux_viewer_id,omitempty"`
	VideoId                        string           `json:"video_id,omitempty"`
	ContinentCode                  string           `json:"continent_code,omitempty"`
	SessionId                      string           `json:"session_id,omitempty"`
	ExitBeforeVideoStart           bool             `json:"exit_before_video_start,omitempty"`
	VideoContentType               string           `json:"video_content_type,omitempty"`
	ViewerOsFamily                 string           `json:"viewer_os_family,omitempty"`
	PlayerPoster                   string           `json:"player_poster,omitempty"`
	ViewAverageRequestLatency      int64            `json:"view_average_request_latency,omitempty"`
	VideoVariantId                 string           `json:"video_variant_id,omitempty"`
	PlayerSourceDuration           int64            `json:"player_source_duration,omitempty"`
	PlayerSourceUrl                string           `json:"player_source_url,omitempty"`
	MuxApiVersion                  string           `json:"mux_api_version,omitempty"`
	VideoTitle                     string           `json:"video_title,omitempty"`
	Id                             string           `json:"id,omitempty"`
	ShortTime                      string           `json:"short_time,omitempty"`
	RebufferPercentage             string           `json:"rebuffer_percentage,omitempty"`
	TimeToFirstFrame               int64            `json:"time_to_first_frame,omitempty"`
	ViewerUserId                   string           `json:"viewer_user_id,omitempty"`
	VideoStreamType                string           `json:"video_stream_type,omitempty"`
	PlayerStartupTime              int64            `json:"player_startup_time,omitempty"`
	ViewerApplicationVersion       string           `json:"viewer_application_version,omitempty"`
	ViewMaxDownscalePercentage     string           `json:"view_max_downscale_percentage,omitempty"`
	ViewMaxUpscalePercentage       string           `json:"view_max_upscale_percentage,omitempty"`
	CountryCode                    string           `json:"country_code,omitempty"`
	UsedFullscreen                 bool             `json:"used_fullscreen,omitempty"`
	Isp                            string           `json:"isp,omitempty"`
	PropertyId                     int64            `json:"property_id,omitempty"`
	PlayerAutoplay                 bool             `json:"player_autoplay,omitempty"`
	PlayerHeight                   int32            `json:"player_height,omitempty"`
	Asn                            int64            `json:"asn,omitempty"`
	AsnName                        string           `json:"asn_name,omitempty"`
	QualityScore                   string           `json:"quality_score,omitempty"`
	PlayerSoftwareVersion          string           `json:"player_software_version,omitempty"`
	PlayerMuxPluginName            string           `json:"player_mux_plugin_name,omitempty"`
	SubPropertyId                  string           `json:"sub_property_id,omitempty"`
	PlayerRemotePlayed             bool             `json:"player_remote_played,omitempty"`
	ViewMaxPlayheadPosition        string           `json:"view_max_playhead_position,omitempty"`
	ViewPlayingTime                string           `json:"view_playing_time,omitempty"`
	ViewSessionId                  string           `json:"view_session_id,omitempty"`
	ViewerConnectionType           string           `json:"viewer_connection_type,omitempty"`
	ViewerDeviceModel              string           `json:"viewer_device_model,omitempty"`
	WeightedAverageBitrate         int64            `json:"weighted_average_bitrate,omitempty"`
}

type VideoViewEvent

type VideoViewEvent struct {
	ViewerTime   int64  `json:"viewer_time,omitempty"`
	PlaybackTime int64  `json:"playback_time,omitempty"`
	Name         string `json:"name,omitempty"`
	EventTime    int64  `json:"event_time,omitempty"`
}

type VideoViewResponse

type VideoViewResponse struct {
	Data      VideoView `json:"data,omitempty"`
	Timeframe []int64   `json:"timeframe,omitempty"`
}

type VideoViewsApiService

type VideoViewsApiService service

func (*VideoViewsApiService) GetVideoView

func (a *VideoViewsApiService) GetVideoView(vIDEOVIEWID string, opts ...APIOption) (VideoViewResponse, error)

func (*VideoViewsApiService) ListVideoViews

func (a *VideoViewsApiService) ListVideoViews(opts ...APIOption) (ListVideoViewsResponse, error)

ListVideoViews optionally accepts the APIOption of WithParams(*ListVideoViewsParams).

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL