muxgo

package module
v4.2.3 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2022 License: MIT Imports: 19 Imported by: 2

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/v4

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/v4"
)

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

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
	PlaybackRestrictionsApi *PlaybackRestrictionsApiService
	RealTimeApi             *RealTimeApiService
	SpacesApi               *SpacesApiService
	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"`
	// Indicates whether the live stream that created this asset is currently `active` and not in `idle` state. This is an optional parameter added when the asset is created from a live stream.
	IsLive bool `json:"is_live,omitempty"`
	// Arbitrary user-supplied 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

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 20 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 5 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

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

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

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) UpdateAsset

func (a *AssetsApiService) UpdateAsset(aSSETID string, updateAssetRequest UpdateAssetRequest, opts ...APIOption) (AssetResponse, error)

func (*AssetsApiService) UpdateAssetMasterAccess

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

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

Generic 400 error

func (BadRequestError) Error

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 Broadcast added in v4.2.1

type Broadcast struct {
	// Unique identifier for the broadcast. Max 255 characters.
	Id string `json:"id"`
	// Arbitrary user-supplied metadata that will be included in the broadcast details and related webhooks. Max: 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The ID of the live stream that the broadcast will be sent to.
	LiveStreamId string          `json:"live_stream_id"`
	Status       BroadcastStatus `json:"status"`
	Layout       BroadcastLayout `json:"layout"`
	// URL of an image to display as the background of the broadcast. Its dimensions should match the provided resolution.
	Background string              `json:"background,omitempty"`
	Resolution BroadcastResolution `json:"resolution"`
}

type BroadcastLayout added in v4.2.1

type BroadcastLayout string

BroadcastLayout : The layout used when broadcasting the space. Defaults to `gallery` if not set.

const (
	GALLERY        BroadcastLayout = "gallery"
	ACTIVE_SPEAKER BroadcastLayout = "active-speaker"
)

List of BroadcastLayout

type BroadcastResolution added in v4.2.1

type BroadcastResolution string

BroadcastResolution : The resolution of the composited video sent to the live stream. Defaults to `1920x1080` if not set.

type BroadcastResponse added in v4.2.1

type BroadcastResponse struct {
	Data Broadcast `json:"data"`
}

type BroadcastStatus added in v4.2.1

type BroadcastStatus string

BroadcastStatus : The status of the broadcast. You can start and stop broadcasts with the `start` and `stop` APIs.

const (
	BROADCAST_IDLE   BroadcastStatus = "idle"
	BROADCAST_ACTIVE BroadcastStatus = "active"
)

List of BroadcastStatus

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 user-supplied 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 CreateBroadcastRequest added in v4.2.1

type CreateBroadcastRequest struct {
	// Arbitrary user-supplied metadata that will be included in the broadcast details and related webhooks. Max: 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The ID of the live stream that you want to broadcast to.
	LiveStreamId string          `json:"live_stream_id"`
	Layout       BroadcastLayout `json:"layout,omitempty"`
	// URL of an image to display as the background of the broadcast. Its dimensions should match the provided resolution.
	Background string              `json:"background,omitempty"`
	Resolution BroadcastResolution `json:"resolution,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 embedded closed caption contents of the incoming live stream.
	EmbeddedSubtitles []LiveStreamEmbeddedSubtitleSettings `json:"embedded_subtitles,omitempty"`
	// This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it 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"`
	// This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it 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"`
	// Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this as an alternative to setting low latency or reduced latency flags. The Low Latency value is a beta feature. Note: Reconnect windows are incompatible with Reduced Latency and Low Latency and will always be set to zero (0) seconds. Read more here: https://mux.com/blog/introducing-low-latency-live-streaming/
	LatencyMode string `json:"latency_mode,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"`
	// The time in seconds a live stream may be continuously active before being disconnected. Defaults to 12 hours.
	MaxContinuousDuration int32 `json:"max_continuous_duration,omitempty"`
}

type CreatePlaybackIdRequest

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

type CreatePlaybackIdResponse

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

type CreatePlaybackRestrictionRequest

type CreatePlaybackRestrictionRequest struct {
	Referrer ReferrerDomainRestriction `json:"referrer,omitempty"`
}

type CreateSimulcastTargetRequest

type CreateSimulcastTargetRequest struct {
	// Arbitrary user-supplied 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 CreateSpaceRequest added in v4.2.1

type CreateSpaceRequest struct {
	Type SpaceType `json:"type,omitempty"`
	// Arbitrary user-supplied metadata that will be included in the space details and related webhooks. Max: 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// An array of broadcast destinations you want to stream the space to. **Note:** By default only a single broadcast destination can be specified. Contact Mux support if you need more.
	Broadcasts []CreateBroadcastRequest `json:"broadcasts,omitempty"`
}

type CreateTrackRequest

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 user-supplied metadata set for the track either when creating the asset or track.
	Passthrough string `json:"passthrough,omitempty"`
}

type CreateTrackResponse

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

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

type DeliveryUsageApiService service

func (*DeliveryUsageApiService) ListDeliveryUsage

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

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

type DimensionValue

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

type DimensionsApiService

type DimensionsApiService service

func (*DimensionsApiService) ListDimensionValues

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

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

func (*DimensionsApiService) ListDimensions

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

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

type EnableLiveStreamResponse

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

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

type ExportFile

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

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

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

403 Error

func (ForbiddenError) Body

func (e ForbiddenError) Body() []byte

func (ForbiddenError) Error

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

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

type GetAssetOrLiveStreamIdResponseData

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

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

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

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

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

type GetRealTimeHistogramTimeseriesResponse

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

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

type GetRealTimeTimeseriesResponse

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

type GetRealtimeBreakdownParams

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

type GetRealtimeHistogramTimeseriesParams

type GetRealtimeHistogramTimeseriesParams struct {
	Filters []string
}

type GetRealtimeTimeseriesParams

type GetRealtimeTimeseriesParams struct {
	Filters []string
}

type Incident

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

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

type IncidentNotification

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

type IncidentNotificationRule

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

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

type IncidentsApiService

type IncidentsApiService service

func (*IncidentsApiService) GetIncident

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

func (*IncidentsApiService) ListIncidents

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

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

func (*IncidentsApiService) ListRelatedIncidents

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 URL 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 `text` type tracks.
	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` type tracks.
	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 tracks. 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). Ensure that the URL is active and persists the entire lifespan of the video object.

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

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

type ListDeliveryUsageResponse

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

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

type ListDimensionValuesResponse

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

type ListDimensionsResponse

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

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

type ListIncidentsResponse

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
	Status    LiveStreamStatus
}

type ListLiveStreamsResponse

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

type ListPlaybackRestrictionsParams

type ListPlaybackRestrictionsParams struct {
	Page  int32
	Limit int32
}

type ListPlaybackRestrictionsResponse

type ListPlaybackRestrictionsResponse struct {
	Data []PlaybackRestriction `json:"data,omitempty"`
}

type ListRealTimeDimensionsResponse

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

type ListRealTimeDimensionsResponseData

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

type ListRealTimeMetricsResponse

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

type ListRelatedIncidentsParams

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

type ListRelatedIncidentsResponse

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 ListSpacesParams added in v4.2.1

type ListSpacesParams struct {
	Limit int32
	Page  int32
}

type ListSpacesResponse added in v4.2.1

type ListSpacesResponse struct {
	Data []Space `json:"data"`
}

type ListUploadsResponse

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

type ListUrlSigningKeysParams

type ListUrlSigningKeysParams struct {
	Limit int32
	Page  int32
}

type ListVideoViewExportsResponse

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"`
	Status         LiveStreamStatus `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 user-supplied 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"`
	// Describes the embedded closed caption configuration of the incoming live stream.
	EmbeddedSubtitles []LiveStreamEmbeddedSubtitleSettings `json:"embedded_subtitles,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"`
	// This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it 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"`
	// This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it 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"`
	// Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this as an alternative to setting low latency or reduced latency flags. The Low Latency value is a beta feature. Note: Reconnect windows are incompatible with Reduced Latency and Low Latency and will always be set to zero (0) seconds. Read more here: https://mux.com/blog/introducing-low-latency-live-streaming/
	LatencyMode string `json:"latency_mode,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"`
	// The time in seconds a live stream may be continuously active before being disconnected. Defaults to 12 hours.
	MaxContinuousDuration int32 `json:"max_continuous_duration,omitempty"`
}

type LiveStreamEmbeddedSubtitleSettings

type LiveStreamEmbeddedSubtitleSettings struct {
	// A name for this live stream closed caption track.
	Name string `json:"name,omitempty"`
	// Arbitrary user-supplied metadata set for the live stream closed caption track. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The language of the closed caption 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 LiveStreamStatus

type LiveStreamStatus string

LiveStreamStatus : `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.

const (
	ACTIVE   LiveStreamStatus = "active"
	IDLE     LiveStreamStatus = "idle"
	DISABLED LiveStreamStatus = "disabled"
)

List of LiveStreamStatus

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

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

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

func (*LiveStreamsApiService) DisableLiveStream

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

func (*LiveStreamsApiService) EnableLiveStream

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

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

func (*LiveStreamsApiService) GetLiveStreamSimulcastTarget

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) UpdateLiveStream

func (a *LiveStreamsApiService) UpdateLiveStream(lIVESTREAMID string, updateLiveStreamRequest UpdateLiveStreamRequest, opts ...APIOption) (LiveStreamResponse, error)

func (*LiveStreamsApiService) UpdateLiveStreamEmbeddedSubtitles

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

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

404 Error

func (NotFoundError) Body

func (e NotFoundError) Body() []byte

func (NotFoundError) Error

func (e NotFoundError) Error() string

type NotificationRule

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

type PlaybackIDApiService service

func (*PlaybackIDApiService) GetAssetOrLivestreamId

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 PlaybackRestriction

type PlaybackRestriction struct {
	// Unique identifier for the Playback Restriction. Max 255 characters.
	Id string `json:"id,omitempty"`
	// Time the Playback Restriction was created, defined as a Unix timestamp (seconds since epoch).
	CreatedAt string `json:"created_at,omitempty"`
	// Time the Playback Restriction was last updated, defined as a Unix timestamp (seconds since epoch).
	UpdatedAt string                    `json:"updated_at,omitempty"`
	Referrer  ReferrerDomainRestriction `json:"referrer,omitempty"`
}

type PlaybackRestrictionResponse

type PlaybackRestrictionResponse struct {
	Data PlaybackRestriction `json:"data,omitempty"`
}

type PlaybackRestrictionsApiService

type PlaybackRestrictionsApiService service

func (*PlaybackRestrictionsApiService) CreatePlaybackRestriction

func (a *PlaybackRestrictionsApiService) CreatePlaybackRestriction(createPlaybackRestrictionRequest CreatePlaybackRestrictionRequest, opts ...APIOption) (PlaybackRestrictionResponse, error)

func (*PlaybackRestrictionsApiService) DeletePlaybackRestriction

func (a *PlaybackRestrictionsApiService) DeletePlaybackRestriction(pLAYBACKRESTRICTIONID string, opts ...APIOption) error

func (*PlaybackRestrictionsApiService) GetPlaybackRestriction

func (a *PlaybackRestrictionsApiService) GetPlaybackRestriction(pLAYBACKRESTRICTIONID string, opts ...APIOption) (PlaybackRestrictionResponse, error)

func (*PlaybackRestrictionsApiService) ListPlaybackRestrictions

func (a *PlaybackRestrictionsApiService) ListPlaybackRestrictions(opts ...APIOption) (ListPlaybackRestrictionsResponse, error)

ListPlaybackRestrictions optionally accepts the APIOption of WithParams(*ListPlaybackRestrictionsParams).

func (*PlaybackRestrictionsApiService) UpdateReferrerDomainRestriction

func (a *PlaybackRestrictionsApiService) UpdateReferrerDomainRestriction(pLAYBACKRESTRICTIONID string, updateReferrerDomainRestrictionRequest UpdateReferrerDomainRestrictionRequest, opts ...APIOption) (PlaybackRestrictionResponse, error)

type RealTimeApiService

type RealTimeApiService service

func (*RealTimeApiService) GetRealtimeBreakdown

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

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

func (*RealTimeApiService) GetRealtimeHistogramTimeseries

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

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

func (*RealTimeApiService) GetRealtimeTimeseries

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

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

func (*RealTimeApiService) ListRealtimeDimensions

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

func (*RealTimeApiService) ListRealtimeMetrics

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

type RealTimeBreakdownValue

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

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

type RealTimeHistogramTimeseriesBucketValues

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

type RealTimeHistogramTimeseriesDatapoint

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

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

type ReferrerDomainRestriction

type ReferrerDomainRestriction struct {
	// List of domains allowed to play videos. Possible values are   * `[]` Empty Array indicates deny video playback requests for all domains   * `[\"*\"]` A Single Wildcard `*` entry means allow video playback requests from any domain   *  `[\"*.example.com\", \"foo.com\"]` A list of up to 10 domains or valid dns-style wildcards
	AllowedDomains []string `json:"allowed_domains,omitempty"`
	// A boolean to determine whether to allow or deny HTTP requests without `Referer` HTTP request header. Playback requests coming from non-web/native applications like iOS, Android or smart TVs will not have a `Referer` HTTP header. Set this value to `true` to allow these playback requests.
	AllowNoReferrer bool `json:"allow_no_referrer,omitempty"`
}

A list of domains allowed to play your videos.

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

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

5XX Error

func (ServiceError) Body

func (e ServiceError) Body() []byte

func (ServiceError) Code

func (e ServiceError) Code() int

func (ServiceError) Error

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

type SimulcastTarget struct {
	// ID of the Simulcast Target
	Id string `json:"id,omitempty"`
	// Arbitrary user-supplied 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

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

type Space added in v4.2.1

type Space struct {
	// Unique identifier for the space. Max 255 characters.
	Id string `json:"id"`
	// Time the space was created, defined as a Unix timestamp (seconds since epoch).
	CreatedAt string      `json:"created_at"`
	Type      SpaceType   `json:"type"`
	Status    SpaceStatus `json:"status"`
	// Arbitrary user-supplied metadata that will be included in the space details and related webhooks. Max: 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// An array of broadcast destinations.
	Broadcasts []Broadcast `json:"broadcasts,omitempty"`
	// Unique identifier for the current lifecycle of the space. Only set when the space is `active` and is set to a new value each time the space transitions from `idle` to `active`. This value is useful for logging and debugging issues. Max 255 characters.
	ActiveSessionId string `json:"active_session_id,omitempty"`
}

type SpaceResponse added in v4.2.1

type SpaceResponse struct {
	Data Space `json:"data"`
}

type SpaceStatus added in v4.2.1

type SpaceStatus string

SpaceStatus : The status of the space. Spaces are `idle` when there are no participants connected, and `active` when there are participants connected.

const (
	SPACE_IDLE   SpaceStatus = "idle"
	SPACE_ACTIVE SpaceStatus = "active"
)

List of SpaceStatus

type SpaceType added in v4.2.1

type SpaceType string

SpaceType : Specify the network architecture of the space. In `server` spaces, all video travels through Mux's video infrastructure. Defaults to `server` if not set.

const (
	SERVER SpaceType = "server"
)

List of SpaceType

type SpacesApiService added in v4.2.1

type SpacesApiService service

func (*SpacesApiService) CreateSpace added in v4.2.1

func (a *SpacesApiService) CreateSpace(createSpaceRequest CreateSpaceRequest, opts ...APIOption) (SpaceResponse, error)

func (*SpacesApiService) CreateSpaceBroadcast added in v4.2.1

func (a *SpacesApiService) CreateSpaceBroadcast(sPACEID string, createBroadcastRequest CreateBroadcastRequest, opts ...APIOption) (BroadcastResponse, error)

func (*SpacesApiService) DeleteSpace added in v4.2.1

func (a *SpacesApiService) DeleteSpace(sPACEID string, opts ...APIOption) error

func (*SpacesApiService) DeleteSpaceBroadcast added in v4.2.1

func (a *SpacesApiService) DeleteSpaceBroadcast(sPACEID string, bROADCASTID string, opts ...APIOption) error

func (*SpacesApiService) GetSpace added in v4.2.1

func (a *SpacesApiService) GetSpace(sPACEID string, opts ...APIOption) (SpaceResponse, error)

func (*SpacesApiService) GetSpaceBroadcast added in v4.2.1

func (a *SpacesApiService) GetSpaceBroadcast(sPACEID string, bROADCASTID string, opts ...APIOption) (BroadcastResponse, error)

func (*SpacesApiService) ListSpaces added in v4.2.1

func (a *SpacesApiService) ListSpaces(opts ...APIOption) (ListSpacesResponse, error)

ListSpaces optionally accepts the APIOption of WithParams(*ListSpacesParams).

func (*SpacesApiService) StartSpaceBroadcast added in v4.2.1

func (a *SpacesApiService) StartSpaceBroadcast(sPACEID string, bROADCASTID string, opts ...APIOption) (StartSpaceBroadcastResponse, error)

func (*SpacesApiService) StopSpaceBroadcast added in v4.2.1

func (a *SpacesApiService) StopSpaceBroadcast(sPACEID string, bROADCASTID string, opts ...APIOption) (StopSpaceBroadcastResponse, error)

type StartSpaceBroadcastResponse added in v4.2.1

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

type StopSpaceBroadcastResponse added in v4.2.1

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

type TooManyRequestsError

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

429 Error

func (TooManyRequestsError) Body

func (e TooManyRequestsError) Body() []byte

func (TooManyRequestsError) Error

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 `text` type tracks. 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 only set for `text` type tracks.
	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 only set for `text` type and `subtitles` text type tracks.
	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 only set for `text` type and `subtitles` text type tracks.
	Name string `json:"name,omitempty"`
	// Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH). This parameter is only set for `text` type and `subtitles` text type tracks.
	ClosedCaptions bool `json:"closed_captions,omitempty"`
	// Arbitrary user-supplied metadata set for the track either when creating the asset or track. This parameter is only set for `text` type tracks. Max 255 characters.
	Passthrough string `json:"passthrough,omitempty"`
	// The status of the track. This parameter is only set for `text` type tracks.
	Status string `json:"status,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

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

401 Error

func (UnauthorizedError) Body

func (e UnauthorizedError) Body() []byte

func (UnauthorizedError) Error

func (e UnauthorizedError) Error() string

type UpdateAssetMasterAccessRequest

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 UpdateAssetRequest

type UpdateAssetRequest struct {
	// Arbitrary metadata set for the Asset. Max 255 characters. In order to clear this value, the field should be included with an empty string value.
	Passthrough string `json:"passthrough,omitempty"`
}

type UpdateLiveStreamEmbeddedSubtitlesRequest

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

type UpdateLiveStreamRequest

type UpdateLiveStreamRequest struct {
	// Arbitrary user-supplied metadata set for the live stream. Max 255 characters. In order to clear this value, the field should be included with an empty-string value.
	Passthrough string `json:"passthrough,omitempty"`
	// Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this as an alternative to setting low latency or reduced latency flags. The Low Latency value is a beta feature. Note: Reconnect windows are incompatible with Reduced Latency and Low Latency and will always be set to zero (0) seconds. Read more here: https://mux.com/blog/introducing-low-latency-live-streaming/
	LatencyMode string `json:"latency_mode,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.
	ReconnectWindow float32 `json:"reconnect_window,omitempty"`
	// The time in seconds a live stream may be continuously active before being disconnected. Defaults to 12 hours.
	MaxContinuousDuration int32 `json:"max_continuous_duration,omitempty"`
}

type UpdateReferrerDomainRestrictionRequest added in v4.1.0

type UpdateReferrerDomainRestrictionRequest struct {
	// List of domains allowed to play videos. Possible values are   * `[]` Empty Array indicates deny video playback requests for all domains   * `[\"*\"]` A Single Wildcard `*` entry means allow video playback requests from any domain   *  `[\"*.example.com\", \"foo.com\"]` A list of up to 10 domains or valid dns-style wildcards
	AllowedDomains []string `json:"allowed_domains,omitempty"`
	// A boolean to determine whether to allow or deny HTTP requests without `Referer` HTTP request header. Playback requests coming from non-web/native applications like iOS, Android or smart TVs will not have a `Referer` HTTP header. Set this value to `true` to allow these playback requests.
	AllowNoReferrer bool `json:"allow_no_referrer,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

Directories

Path Synopsis
examples
data/dimensions command
data/errors command
data/exports command
data/filters command
data/incidents command
data/metrics command
data/realtime command
video/assets command
video/ingest command

Jump to

Keyboard shortcuts

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