diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..fd97118
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,25 @@
+name: Release Nuget package
+on:
+ release:
+ types: [created]
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ dotnet: [ '3.1.x' ]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup Dotnet ${{ matrix.dotnet }}
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: ${{ matrix.dotnet }}
+ - name: Test
+ run: |
+ cd src
+ msbuild /r ApiVideo.csproj
+ msbuild -t:pack
+ cd Debug
+ nuget push `ls` -Source nuget.org -ApiKey $NUGET_KEY -NonInteractive
+ env:
+ $NUGET_KEY: ${{ secrets.NUGET_KEY }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..2121e52
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,23 @@
+name: Run unit tests
+on: [push]
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ dotnet: [ '3.1.x' ]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup Dotnet ${{ matrix.dotnet }}
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: ${{ matrix.dotnet }}
+ - name: Test
+ run: |
+ cd src
+ msbuild /r ApiVideo.csproj
+ cd ../tests
+ msbuild /r ApiVideoTests.csproj
+ dotnet test
+ env:
+ API_KEY: ${{ secrets.API_KEY }}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1ee5385
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,362 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore
new file mode 100644
index 0000000..7484ee5
--- /dev/null
+++ b/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
new file mode 100644
index 0000000..b838551
--- /dev/null
+++ b/.openapi-generator/FILES
@@ -0,0 +1,244 @@
+.gitignore
+.openapi-generator-ignore
+.travis.yml
+ApiVideo.sln
+README.md
+build.bat
+build.sh
+docs/AccessToken.md
+docs/Account.md
+docs/AccountQuota.md
+docs/AuthenticatePayload.md
+docs/AuthenticationApi.md
+docs/BadRequest.md
+docs/BytesRange.md
+docs/Caption.md
+docs/CaptionsApi.md
+docs/CaptionsListResponse.md
+docs/CaptionsUpdatePayload.md
+docs/Chapter.md
+docs/ChaptersApi.md
+docs/ChaptersListResponse.md
+docs/Link.md
+docs/LiveStream.md
+docs/LiveStreamAssets.md
+docs/LiveStreamCreationPayload.md
+docs/LiveStreamListResponse.md
+docs/LiveStreamSession.md
+docs/LiveStreamSessionClient.md
+docs/LiveStreamSessionDevice.md
+docs/LiveStreamSessionLocation.md
+docs/LiveStreamSessionReferrer.md
+docs/LiveStreamSessionSession.md
+docs/LiveStreamUpdatePayload.md
+docs/LiveStreamsApi.md
+docs/Metadata.md
+docs/NotFound.md
+docs/Pagination.md
+docs/Pagination.md
+docs/PaginationLink.md
+docs/PlayerSessionEvent.md
+docs/PlayerTheme.md
+docs/PlayerThemeAssets.md
+docs/PlayerThemeCreationPayload.md
+docs/PlayerThemeUpdatePayload.md
+docs/PlayerThemesApi.md
+docs/PlayerThemesListResponse.md
+docs/Quality.md
+docs/RawStatisticsApi.md
+docs/RawStatisticsListLiveStreamAnalyticsResponse.md
+docs/RawStatisticsListPlayerSessionEventsResponse.md
+docs/RawStatisticsListSessionsResponse.md
+docs/RefreshTokenPayload.md
+docs/TokenCreationPayload.md
+docs/TokenListResponse.md
+docs/UploadToken.md
+docs/UploadTokensApi.md
+docs/Video.md
+docs/VideoAssets.md
+docs/VideoCreationPayload.md
+docs/VideoSession.md
+docs/VideoSessionClient.md
+docs/VideoSessionDevice.md
+docs/VideoSessionLocation.md
+docs/VideoSessionOs.md
+docs/VideoSessionReferrer.md
+docs/VideoSessionSession.md
+docs/VideoSource.md
+docs/VideoSourceLiveStream.md
+docs/VideoSourceLiveStreamLink.md
+docs/VideoStatus.md
+docs/VideoStatusEncoding.md
+docs/VideoStatusEncodingMetadata.md
+docs/VideoStatusIngest.md
+docs/VideoThumbnailPickPayload.md
+docs/VideoUpdatePayload.md
+docs/VideosApi.md
+docs/VideosListResponse.md
+docs/Webhook.md
+docs/WebhooksApi.md
+docs/WebhooksCreationPayload.md
+docs/WebhooksListResponse.md
+git_push.sh
+mono_nunit_test.sh
+post-generate.sh
+src/ApiVideo.Test/Api/AuthenticationApiTests.cs
+src/ApiVideo.Test/Api/CaptionsApiTests.cs
+src/ApiVideo.Test/Api/ChaptersApiTests.cs
+src/ApiVideo.Test/Api/LiveStreamsApiTests.cs
+src/ApiVideo.Test/Api/PlayerThemesApiTests.cs
+src/ApiVideo.Test/Api/RawStatisticsApiTests.cs
+src/ApiVideo.Test/Api/UploadTokensApiTests.cs
+src/ApiVideo.Test/Api/VideosApiTests.cs
+src/ApiVideo.Test/Api/WebhooksApiTests.cs
+src/ApiVideo.Test/ApiVideo.Test.csproj
+src/ApiVideo.Test/Model/AccessTokenTests.cs
+src/ApiVideo.Test/Model/AccountQuotaTests.cs
+src/ApiVideo.Test/Model/AccountTests.cs
+src/ApiVideo.Test/Model/AuthenticatePayloadTests.cs
+src/ApiVideo.Test/Model/BadRequestTests.cs
+src/ApiVideo.Test/Model/BytesRangeTests.cs
+src/ApiVideo.Test/Model/CaptionTests.cs
+src/ApiVideo.Test/Model/CaptionsListResponseTests.cs
+src/ApiVideo.Test/Model/CaptionsUpdatePayloadTests.cs
+src/ApiVideo.Test/Model/ChapterTests.cs
+src/ApiVideo.Test/Model/ChaptersListResponseTests.cs
+src/ApiVideo.Test/Model/LinkTests.cs
+src/ApiVideo.Test/Model/LiveStreamAssetsTests.cs
+src/ApiVideo.Test/Model/LiveStreamCreationPayloadTests.cs
+src/ApiVideo.Test/Model/LiveStreamListResponseTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionClientTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionDeviceTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionLocationTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionReferrerTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionSessionTests.cs
+src/ApiVideo.Test/Model/LiveStreamSessionTests.cs
+src/ApiVideo.Test/Model/LiveStreamTests.cs
+src/ApiVideo.Test/Model/LiveStreamUpdatePayloadTests.cs
+src/ApiVideo.Test/Model/MetadataTests.cs
+src/ApiVideo.Test/Model/NotFoundTests.cs
+src/ApiVideo.Test/Model/PaginationLinkTests.cs
+src/ApiVideo.Test/Model/PaginationTests.cs
+src/ApiVideo.Test/Model/PlayerSessionEventTests.cs
+src/ApiVideo.Test/Model/PlayerThemeAssetsTests.cs
+src/ApiVideo.Test/Model/PlayerThemeCreationPayloadTests.cs
+src/ApiVideo.Test/Model/PlayerThemeTests.cs
+src/ApiVideo.Test/Model/PlayerThemeUpdatePayloadTests.cs
+src/ApiVideo.Test/Model/PlayerThemesListResponseTests.cs
+src/ApiVideo.Test/Model/QualityTests.cs
+src/ApiVideo.Test/Model/RawStatisticsListLiveStreamAnalyticsResponseTests.cs
+src/ApiVideo.Test/Model/RawStatisticsListPlayerSessionEventsResponseTests.cs
+src/ApiVideo.Test/Model/RawStatisticsListSessionsResponseTests.cs
+src/ApiVideo.Test/Model/RefreshTokenPayloadTests.cs
+src/ApiVideo.Test/Model/TokenCreationPayloadTests.cs
+src/ApiVideo.Test/Model/TokenListResponseTests.cs
+src/ApiVideo.Test/Model/UploadTokenTests.cs
+src/ApiVideo.Test/Model/VideoAssetsTests.cs
+src/ApiVideo.Test/Model/VideoCreationPayloadTests.cs
+src/ApiVideo.Test/Model/VideoSessionClientTests.cs
+src/ApiVideo.Test/Model/VideoSessionDeviceTests.cs
+src/ApiVideo.Test/Model/VideoSessionLocationTests.cs
+src/ApiVideo.Test/Model/VideoSessionOsTests.cs
+src/ApiVideo.Test/Model/VideoSessionReferrerTests.cs
+src/ApiVideo.Test/Model/VideoSessionSessionTests.cs
+src/ApiVideo.Test/Model/VideoSessionTests.cs
+src/ApiVideo.Test/Model/VideoSourceLiveStreamLinkTests.cs
+src/ApiVideo.Test/Model/VideoSourceLiveStreamTests.cs
+src/ApiVideo.Test/Model/VideoSourceTests.cs
+src/ApiVideo.Test/Model/VideoStatusEncodingMetadataTests.cs
+src/ApiVideo.Test/Model/VideoStatusEncodingTests.cs
+src/ApiVideo.Test/Model/VideoStatusIngestTests.cs
+src/ApiVideo.Test/Model/VideoStatusTests.cs
+src/ApiVideo.Test/Model/VideoTests.cs
+src/ApiVideo.Test/Model/VideoThumbnailPickPayloadTests.cs
+src/ApiVideo.Test/Model/VideoUpdatePayloadTests.cs
+src/ApiVideo.Test/Model/VideosListResponseTests.cs
+src/ApiVideo.Test/Model/WebhookTests.cs
+src/ApiVideo.Test/Model/WebhooksCreationPayloadTests.cs
+src/ApiVideo.Test/Model/WebhooksListResponseTests.cs
+src/ApiVideo.Test/packages.config
+src/ApiVideo/Api/AuthenticationApi.cs
+src/ApiVideo/Api/CaptionsApi.cs
+src/ApiVideo/Api/ChaptersApi.cs
+src/ApiVideo/Api/LiveStreamsApi.cs
+src/ApiVideo/Api/PlayerThemesApi.cs
+src/ApiVideo/Api/RawStatisticsApi.cs
+src/ApiVideo/Api/UploadTokensApi.cs
+src/ApiVideo/Api/VideosApi.cs
+src/ApiVideo/Api/WebhooksApi.cs
+src/ApiVideo/ApiVideo.cs
+src/ApiVideo/ApiVideo.csproj
+src/ApiVideo/ApiVideo.nuspec
+src/ApiVideo/Client/ApiClient.cs
+src/ApiVideo/Client/ApiException.cs
+src/ApiVideo/Client/ApiResponse.cs
+src/ApiVideo/Client/AuthenticationManager.cs
+src/ApiVideo/Client/EmptyArrayFixTypeConverter.cs
+src/ApiVideo/Model/AccessToken.cs
+src/ApiVideo/Model/Account.cs
+src/ApiVideo/Model/AccountQuota.cs
+src/ApiVideo/Model/AuthenticatePayload.cs
+src/ApiVideo/Model/BadRequest.cs
+src/ApiVideo/Model/BytesRange.cs
+src/ApiVideo/Model/Caption.cs
+src/ApiVideo/Model/CaptionsListResponse.cs
+src/ApiVideo/Model/CaptionsUpdatePayload.cs
+src/ApiVideo/Model/Chapter.cs
+src/ApiVideo/Model/ChaptersListResponse.cs
+src/ApiVideo/Model/IUploadProgressListener.cs
+src/ApiVideo/Model/Link.cs
+src/ApiVideo/Model/LiveStream.cs
+src/ApiVideo/Model/LiveStreamAssets.cs
+src/ApiVideo/Model/LiveStreamCreationPayload.cs
+src/ApiVideo/Model/LiveStreamListResponse.cs
+src/ApiVideo/Model/LiveStreamSession.cs
+src/ApiVideo/Model/LiveStreamSessionClient.cs
+src/ApiVideo/Model/LiveStreamSessionDevice.cs
+src/ApiVideo/Model/LiveStreamSessionLocation.cs
+src/ApiVideo/Model/LiveStreamSessionReferrer.cs
+src/ApiVideo/Model/LiveStreamSessionSession.cs
+src/ApiVideo/Model/LiveStreamUpdatePayload.cs
+src/ApiVideo/Model/Metadata.cs
+src/ApiVideo/Model/NotFound.cs
+src/ApiVideo/Model/Page.cs
+src/ApiVideo/Model/Pagination.cs
+src/ApiVideo/Model/PaginationLink.cs
+src/ApiVideo/Model/PlayerSessionEvent.cs
+src/ApiVideo/Model/PlayerTheme.cs
+src/ApiVideo/Model/PlayerThemeAssets.cs
+src/ApiVideo/Model/PlayerThemeCreationPayload.cs
+src/ApiVideo/Model/PlayerThemeUpdatePayload.cs
+src/ApiVideo/Model/PlayerThemesListResponse.cs
+src/ApiVideo/Model/Quality.cs
+src/ApiVideo/Model/RawStatisticsListLiveStreamAnalyticsResponse.cs
+src/ApiVideo/Model/RawStatisticsListPlayerSessionEventsResponse.cs
+src/ApiVideo/Model/RawStatisticsListSessionsResponse.cs
+src/ApiVideo/Model/RefreshTokenPayload.cs
+src/ApiVideo/Model/TokenCreationPayload.cs
+src/ApiVideo/Model/TokenListResponse.cs
+src/ApiVideo/Model/UploadToken.cs
+src/ApiVideo/Model/Video.cs
+src/ApiVideo/Model/VideoAssets.cs
+src/ApiVideo/Model/VideoCreationPayload.cs
+src/ApiVideo/Model/VideoSession.cs
+src/ApiVideo/Model/VideoSessionClient.cs
+src/ApiVideo/Model/VideoSessionDevice.cs
+src/ApiVideo/Model/VideoSessionLocation.cs
+src/ApiVideo/Model/VideoSessionOs.cs
+src/ApiVideo/Model/VideoSessionReferrer.cs
+src/ApiVideo/Model/VideoSessionSession.cs
+src/ApiVideo/Model/VideoSource.cs
+src/ApiVideo/Model/VideoSourceLiveStream.cs
+src/ApiVideo/Model/VideoSourceLiveStreamLink.cs
+src/ApiVideo/Model/VideoStatus.cs
+src/ApiVideo/Model/VideoStatusEncoding.cs
+src/ApiVideo/Model/VideoStatusEncodingMetadata.cs
+src/ApiVideo/Model/VideoStatusIngest.cs
+src/ApiVideo/Model/VideoThumbnailPickPayload.cs
+src/ApiVideo/Model/VideoUpdatePayload.cs
+src/ApiVideo/Model/VideosListResponse.cs
+src/ApiVideo/Model/Webhook.cs
+src/ApiVideo/Model/WebhooksCreationPayload.cs
+src/ApiVideo/Model/WebhooksListResponse.cs
+src/ApiVideo/Properties/AssemblyInfo.cs
+src/ApiVideo/packages.config
diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION
new file mode 100644
index 0000000..32f3eaa
--- /dev/null
+++ b/.openapi-generator/VERSION
@@ -0,0 +1 @@
+5.0.1
\ No newline at end of file
diff --git a/.openapi-generator/oas_apivideo.yaml.sha256 b/.openapi-generator/oas_apivideo.yaml.sha256
new file mode 100644
index 0000000..b777ca8
--- /dev/null
+++ b/.openapi-generator/oas_apivideo.yaml.sha256
@@ -0,0 +1 @@
+1a97a7d969e8756611ec4f47e82c4fbb5abfae71edc15e6fdb7cbc83085986e6
\ No newline at end of file
diff --git a/ApiVideo.sln b/ApiVideo.sln
index 3012b74..cdc0096 100644
--- a/ApiVideo.sln
+++ b/ApiVideo.sln
@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
VisualStudioVersion = 12.0.0.0
MinimumVisualStudioVersion = 10.0.0.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiVideo", "src\ApiVideo.csproj", "{78091201-0743-4FD1-B18B-D298CE4C50FD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiVideo", "src\ApiVideo.csproj", "{3ABF987D-07C3-4019-9658-0FC746FD236C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiVideo.Test", "tests\ApiVideoTests.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
EndProject
@@ -12,10 +12,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {78091201-0743-4FD1-B18B-D298CE4C50FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {78091201-0743-4FD1-B18B-D298CE4C50FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {78091201-0743-4FD1-B18B-D298CE4C50FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {78091201-0743-4FD1-B18B-D298CE4C50FD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3ABF987D-07C3-4019-9658-0FC746FD236C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3ABF987D-07C3-4019-9658-0FC746FD236C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3ABF987D-07C3-4019-9658-0FC746FD236C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3ABF987D-07C3-4019-9658-0FC746FD236C}.Release|Any CPU.Build.0 = Release|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/docs/AuthenticationApi.md b/docs/AuthenticationApi.md
index 8f189ee..4a80e75 100644
--- a/docs/AuthenticationApi.md
+++ b/docs/AuthenticationApi.md
@@ -85,7 +85,7 @@ No authorization required
Refresh token
-Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
+Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
### Example
```csharp
diff --git a/docs/CaptionsApi.md b/docs/CaptionsApi.md
index 87c5302..c45c0ce 100644
--- a/docs/CaptionsApi.md
+++ b/docs/CaptionsApi.md
@@ -255,7 +255,7 @@ namespace Example
var apiInstance = new ApiVideoClient(apiKey,basePath);
- var videoId = vi4k0jvEUuaTdRAEjQ4Prklg; // string | The unique identifier for the video you want to have automatic captions for.
+ var videoId = vi4k0jvEUuaTdRAEjQ4Prklg; // string | The unique identifier for the video you want to have automatic captions for.
var language = en; // string | A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
var captionsUpdatePayload = new CaptionsUpdatePayload(); // CaptionsUpdatePayload |
var apiCaptionsInstance = apiInstance.Captions();
@@ -280,7 +280,7 @@ namespace Example
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **videoId** | **string**| The unique identifier for the video you want to have automatic captions for. |
+ **videoId** | **string**| The unique identifier for the video you want to have automatic captions for. |
**language** | **string**| A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation. |
**captionsUpdatePayload** | [**CaptionsUpdatePayload**](CaptionsUpdatePayload.md)| |
diff --git a/docs/CaptionsListResponse.md b/docs/CaptionsListResponse.md
index 68a6e54..9afba4f 100644
--- a/docs/CaptionsListResponse.md
+++ b/docs/CaptionsListResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<Caption>**](Caption.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<Caption>**](Caption.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/ChaptersApi.md b/docs/ChaptersApi.md
index 6b5546e..7217fab 100644
--- a/docs/ChaptersApi.md
+++ b/docs/ChaptersApi.md
@@ -32,7 +32,7 @@ namespace Example
var apiInstance = new ApiVideoClient(apiKey,basePath);
- var videoId = vi4k0jvEUuaTdRAEjQ4Jfrgz; // string | The unique identifier for the video you want to delete a chapter from.
+ var videoId = vi4k0jvEUuaTdRAEjQ4Jfrgz; // string | The unique identifier for the video you want to delete a chapter from.
var language = en; // string | A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
var apiChaptersInstance = apiInstance.Chapters();
try
@@ -55,7 +55,7 @@ namespace Example
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **videoId** | **string**| The unique identifier for the video you want to delete a chapter from. |
+ **videoId** | **string**| The unique identifier for the video you want to delete a chapter from. |
**language** | **string**| A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation. |
### Return type
diff --git a/docs/ChaptersListResponse.md b/docs/ChaptersListResponse.md
index 7b27dd1..1ca0608 100644
--- a/docs/ChaptersListResponse.md
+++ b/docs/ChaptersListResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<Chapter>**](Chapter.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<Chapter>**](Chapter.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/LiveStream.md b/docs/LiveStream.md
index 6004e1e..5fda5f9 100644
--- a/docs/LiveStream.md
+++ b/docs/LiveStream.md
@@ -4,7 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**LiveStreamId** | **string** | The unique identifier for the live stream. Live stream IDs begin with \"li.\" | [optional]
+**LiveStreamId** | **string** | The unique identifier for the live stream. Live stream IDs begin with \"li.\" |
**Name** | **string** | The name of your live stream. | [optional]
**StreamKey** | **string** | The unique, private stream key that you use to begin streaming. | [optional]
**Record** | **bool** | Whether you are recording or not. | [optional]
diff --git a/docs/LiveStreamsApi.md b/docs/LiveStreamsApi.md
index edbf683..07e33c0 100644
--- a/docs/LiveStreamsApi.md
+++ b/docs/LiveStreamsApi.md
@@ -380,7 +380,7 @@ Name | Type | Description | Notes
Create live stream
-A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
+A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
### Example
```csharp
diff --git a/docs/PlayerTheme.md b/docs/PlayerTheme.md
index 174133d..778d434 100644
--- a/docs/PlayerTheme.md
+++ b/docs/PlayerTheme.md
@@ -18,7 +18,7 @@ Name | Type | Description | Notes
**ForceAutoplay** | **bool** | enable/disable player autoplay. Default: false | [optional]
**HideTitle** | **bool** | enable/disable title. Default: false | [optional]
**ForceLoop** | **bool** | enable/disable looping. Default: false | [optional]
-**PlayerId** | **string** | | [optional]
+**PlayerId** | **string** | |
**CreatedAt** | **DateTime** | When the player was created, presented in ISO-8601 format. | [optional]
**UpdatedAt** | **DateTime** | When the player was last updated, presented in ISO-8601 format. | [optional]
**ShapeMargin** | **int** | Deprecated | [optional]
diff --git a/docs/PlayerThemesApi.md b/docs/PlayerThemesApi.md
index 1b2de04..979c9f6 100644
--- a/docs/PlayerThemesApi.md
+++ b/docs/PlayerThemesApi.md
@@ -444,11 +444,11 @@ Name | Type | Description | Notes
# **uploadLogo**
-> PlayerTheme uploadLogo (string playerId, System.IO.Stream file, string link)
+> PlayerTheme uploadLogo (string playerId, System.IO.Stream file, string link = null)
Upload a logo
-The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
+The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
### Example
```csharp
@@ -468,7 +468,7 @@ namespace Example
var playerId = pl14Db6oMJRH6SRVoOwORacK; // string | The unique identifier for the player.
var file = BINARY_DATA_HERE; // System.IO.Stream | The name of the file you want to use for your logo.
- var link = link_example; // string | The path to the file you want to upload and use as a logo.
+ var link = link_example; // string | A public link that you want to advertise in your player. For example, you could add a link to your company. When a viewer clicks on your logo, they will be taken to this address. (optional)
var apiPlayerThemesInstance = apiInstance.PlayerThemes();
try
{
@@ -493,7 +493,7 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**playerId** | **string**| The unique identifier for the player. |
**file** | **System.IO.Stream****System.IO.Stream**| The name of the file you want to use for your logo. |
- **link** | **string**| The path to the file you want to upload and use as a logo. |
+ **link** | **string**| A public link that you want to advertise in your player. For example, you could add a link to your company. When a viewer clicks on your logo, they will be taken to this address. | [optional]
### Return type
diff --git a/docs/PlayerThemesListResponse.md b/docs/PlayerThemesListResponse.md
index e355473..8022737 100644
--- a/docs/PlayerThemesListResponse.md
+++ b/docs/PlayerThemesListResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<PlayerTheme>**](PlayerTheme.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<PlayerTheme>**](PlayerTheme.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/RawStatisticsApi.md b/docs/RawStatisticsApi.md
index 66d54ad..f57527e 100644
--- a/docs/RawStatisticsApi.md
+++ b/docs/RawStatisticsApi.md
@@ -32,7 +32,7 @@ namespace Example
var apiInstance = new ApiVideoClient(apiKey,basePath);
var liveStreamId = vi4k0jvEUuaTdRAEjQ4Jfrgz; // string | The unique identifier for the live stream you want to retrieve analytics for.
- var period = 2019-01-01; // string | Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
+ var period = 2019-01-01; // string | Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
var currentPage = 2; // int? | Choose the number of search results to return per page. Minimum value: 1 (optional) (default to 1)
var pageSize = 30; // int? | Results per page. Allowed values 1-100, default is 25. (optional) (default to 25)
var apiRawStatisticsInstance = apiInstance.RawStatistics();
@@ -58,7 +58,7 @@ namespace Example
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**liveStreamId** | **string**| The unique identifier for the live stream you want to retrieve analytics for. |
- **period** | **string**| Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" | [optional]
+ **period** | **string**| Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" | [optional]
**currentPage** | **int?**| Choose the number of search results to return per page. Minimum value: 1 | [optional] [default to 1]
**pageSize** | **int?**| Results per page. Allowed values 1-100, default is 25. | [optional] [default to 25]
@@ -161,7 +161,7 @@ Name | Type | Description | Notes
# **listVideoSessions**
-> RawStatisticsListSessionsResponse listVideoSessions (string videoId, string period = null, List metadata = null, int? currentPage = null, int? pageSize = null)
+> RawStatisticsListSessionsResponse listVideoSessions (string videoId, string period = null, Dictionary metadata = null, int? currentPage = null, int? pageSize = null)
List video player sessions
@@ -184,8 +184,8 @@ namespace Example
var apiInstance = new ApiVideoClient(apiKey,basePath);
var videoId = vi4k0jvEUuaTdRAEjQ4Prklg; // string | The unique identifier for the video you want to retrieve session information for.
- var period = period_example; // string | Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
- var metadata = new List(); // List | Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. (optional)
+ var period = period_example; // string | Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
+ var metadata = new Dictionary(); // Dictionary | Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. (optional)
var currentPage = 2; // int? | Choose the number of search results to return per page. Minimum value: 1 (optional) (default to 1)
var pageSize = 30; // int? | Results per page. Allowed values 1-100, default is 25. (optional) (default to 25)
var apiRawStatisticsInstance = apiInstance.RawStatistics();
@@ -211,8 +211,8 @@ namespace Example
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**videoId** | **string**| The unique identifier for the video you want to retrieve session information for. |
- **period** | **string**| Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 | [optional]
- **metadata** | [**List<string>**](string.md)| Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. | [optional]
+ **period** | **string**| Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 | [optional]
+ **metadata** | [**Dictionary<string, string>**](string.md)| Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. | [optional]
**currentPage** | **int?**| Choose the number of search results to return per page. Minimum value: 1 | [optional] [default to 1]
**pageSize** | **int?**| Results per page. Allowed values 1-100, default is 25. | [optional] [default to 25]
diff --git a/docs/RawStatisticsListLiveStreamAnalyticsResponse.md b/docs/RawStatisticsListLiveStreamAnalyticsResponse.md
index 03c6fb1..48c1db6 100644
--- a/docs/RawStatisticsListLiveStreamAnalyticsResponse.md
+++ b/docs/RawStatisticsListLiveStreamAnalyticsResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<LiveStreamSession>**](LiveStreamSession.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<LiveStreamSession>**](LiveStreamSession.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/RawStatisticsListPlayerSessionEventsResponse.md b/docs/RawStatisticsListPlayerSessionEventsResponse.md
index 4a9390b..79d7132 100644
--- a/docs/RawStatisticsListPlayerSessionEventsResponse.md
+++ b/docs/RawStatisticsListPlayerSessionEventsResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<PlayerSessionEvent>**](PlayerSessionEvent.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<PlayerSessionEvent>**](PlayerSessionEvent.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/RawStatisticsListSessionsResponse.md b/docs/RawStatisticsListSessionsResponse.md
index 7a860a9..1b940c4 100644
--- a/docs/RawStatisticsListSessionsResponse.md
+++ b/docs/RawStatisticsListSessionsResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<VideoSession>**](VideoSession.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<VideoSession>**](VideoSession.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/UploadToken.md b/docs/UploadToken.md
index a57163a..8881d49 100644
--- a/docs/UploadToken.md
+++ b/docs/UploadToken.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
**Token** | **string** | The unique identifier for the token you will use to authenticate an upload. | [optional]
**Ttl** | **int** | Time-to-live - how long the upload token is valid for. | [optional]
**CreatedAt** | **DateTime** | When the token was created, displayed in ISO-8601 format. | [optional]
-**ExpiresAt** | **DateTime** | When the token expires, displayed in ISO-8601 format. | [optional]
+**ExpiresAt** | **DateTime?** | When the token expires, displayed in ISO-8601 format. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/Video.md b/docs/Video.md
index 83adf79..0fef27a 100644
--- a/docs/Video.md
+++ b/docs/Video.md
@@ -4,14 +4,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**VideoId** | **string** | The unique identifier of the video object. | [optional]
+**VideoId** | **string** | The unique identifier of the video object. |
**CreatedAt** | **DateTime** | When an webhook was created, presented in ISO-8601 format. | [optional]
-**Title** | **string** | The title of the video content. | [optional]
+**Title** | **string** | The title of the video content. |
**Description** | **string** | A description for the video content. | [optional]
**PublishedAt** | **string** | The date and time the API created the video. Date and time are provided using ISO-8601 UTC format. | [optional]
**UpdatedAt** | **DateTime** | The date and time the video was updated. Date and time are provided using ISO-8601 UTC format. | [optional]
-**Tags** | **List<string>** | One array of tags (each tag is a string) in order to categorize a video. Tags may include spaces. | [optional]
-**Metadata** | [**List<Metadata>**](Metadata.md) | Metadata you can use to categorise and filter videos. Metadata is a list of dictionaries, where each dictionary represents a key value pair for categorising a video. | [optional]
+**Tags** | **List<string>** | One array of tags (each tag is a string) in order to categorize a video. Tags may include spaces. | [optional]
+**Metadata** | [**List<Metadata>**](Metadata.md) | Metadata you can use to categorise and filter videos. Metadata is a list of dictionaries, where each dictionary represents a key value pair for categorising a video. | [optional]
**Source** | [**VideoSource**](VideoSource.md) | | [optional]
**Assets** | [**VideoAssets**](VideoAssets.md) | | [optional]
**PlayerId** | **string** | The id of the player that will be applied on the video. | [optional]
diff --git a/docs/VideoSessionSession.md b/docs/VideoSessionSession.md
index d145a9b..bf50d73 100644
--- a/docs/VideoSessionSession.md
+++ b/docs/VideoSessionSession.md
@@ -7,6 +7,7 @@ Name | Type | Description | Notes
**SessionId** | **string** | The unique identifier for the session that you can use to track what happens during it. | [optional]
**LoadedAt** | **DateTime** | When the video session started, presented in ISO-8601 format. | [optional]
**EndedAt** | **DateTime** | When the video session ended, presented in ISO-8601 format. | [optional]
+**Metadata** | [**List<Metadata>**](Metadata.md) | A list of key value pairs that you use to provide metadata for your video. These pairs can be made dynamic, allowing you to segment your audience. You can also just use the pairs as another way to tag and categorize your videos. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/VideoStatusEncodingMetadata.md b/docs/VideoStatusEncodingMetadata.md
index 0d61538..aa99a68 100644
--- a/docs/VideoStatusEncodingMetadata.md
+++ b/docs/VideoStatusEncodingMetadata.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
**Duration** | **int** | The length of the video. | [optional]
**Framerate** | **int** | The frequency with which consecutive images or frames appear on a display. Shown in this API as frames per second (fps). | [optional]
**Samplerate** | **int** | How many samples per second a digital audio system uses to record an audio signal. The higher the rate, the higher the frequencies that can be recorded. They are presented in this API using hertz. | [optional]
-**VideoCodec** | **string** | The method used to compress and decompress digital video. API Video supports all codecs in the libavcodec library. | [optional]
+**VideoCodec** | **string** | The method used to compress and decompress digital video. API Video supports all codecs in the libavcodec library. | [optional]
**AudioCodec** | **string** | The method used to compress and decompress digital audio for your video. | [optional]
**AspectRatio** | **string** | | [optional]
diff --git a/docs/VideoThumbnailPickPayload.md b/docs/VideoThumbnailPickPayload.md
index a24a039..812062f 100644
--- a/docs/VideoThumbnailPickPayload.md
+++ b/docs/VideoThumbnailPickPayload.md
@@ -4,7 +4,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Timecode** | **string** | Frame in video to be used as a placeholder before the video plays. Example: '\"00:01:00.000\" for 1 minute into the video.' Valid Patterns: \"hh:mm:ss.ms\" \"hh:mm:ss:frameNumber\" \"124\" (integer value is reported as seconds) If selection is out of range, \"00:00:00.00\" will be chosen. |
+**Timecode** | **string** | Frame in video to be used as a placeholder before the video plays. Example: '\"00:01:00.000\" for 1 minute into the video.' Valid Patterns: \"hh:mm:ss.ms\" \"hh:mm:ss:frameNumber\" \"124\" (integer value is reported as seconds) If selection is out of range, \"00:00:00.00\" will be chosen. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/VideosApi.md b/docs/VideosApi.md
index a354602..ef9238d 100644
--- a/docs/VideosApi.md
+++ b/docs/VideosApi.md
@@ -541,7 +541,7 @@ No authorization required
Create a video
-To create a video, you create its metadata first, before adding the video file (exception - when using an existing HTTP source). Videos are public by default. Mp4 encoded versions are created at the highest quality (max 1080p) by default. ```shell $ curl https://ws.api.video/videos \\ -H 'Authorization: Bearer {access_token} \\ -d '{\"title\":\"My video\", \"description\":\"so many details\", \"mp4Support\":true }' ``` ### Creating a hosted video You can also create a video directly from one hosted on a third-party server by giving its URI in `source` parameter: ```shell $ curl https://ws.api.video/videos \\ -H 'Authorization: Bearer {access_token} \\ -d '{\"source\":\"http://uri/to/video.mp4\", \"title\":\"My video\"}' ``` In this case, the service will respond `202 Accepted` and download the video asynchronously. We have tutorials on: * [Creating and uploading videos](https://api.video/blog/tutorials/video-upload-tutorial) * [Uploading large videos](https://api.video/blog/tutorials/video-upload-tutorial-large-videos) * [Using tags with videos](https://api.video/blog/tutorials/video-tagging-best-practices) * [Private videos](https://api.video/blog/tutorials/tutorial-private-videos)
+To create a video, you create its metadata first, before adding the video file (exception - when using an existing HTTP source). Videos are public by default. Mp4 encoded versions are created at the highest quality (max 1080p) by default. ```shell $ curl https://ws.api.video/videos \\ -H 'Authorization: Bearer {access_token} \\ -d '{\"title\":\"My video\", \"description\":\"so many details\", \"mp4Support\":true }' ``` ### Creating a hosted video You can also create a video directly from one hosted on a third-party server by giving its URI in `source` parameter: ```shell $ curl https://ws.api.video/videos \\ -H 'Authorization: Bearer {access_token} \\ -d '{\"source\":\"http://uri/to/video.mp4\", \"title\":\"My video\"}' ``` In this case, the service will respond `202 Accepted` and download the video asynchronously. We have tutorials on: * [Creating and uploading videos](https://api.video/blog/tutorials/video-upload-tutorial) * [Uploading large videos](https://api.video/blog/tutorials/video-upload-tutorial-large-videos) * [Using tags with videos](https://api.video/blog/tutorials/video-tagging-best-practices) * [Private videos](https://api.video/blog/tutorials/tutorial-private-videos)
### Example
```csharp
diff --git a/docs/WebhooksListResponse.md b/docs/WebhooksListResponse.md
index 72321cc..e29ca77 100644
--- a/docs/WebhooksListResponse.md
+++ b/docs/WebhooksListResponse.md
@@ -4,8 +4,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**Data** | [**List<Webhook>**](Webhook.md) | | [optional]
-**Pagination** | [**Pagination**](Pagination.md) | | [optional]
+**Data** | [**List<Webhook>**](Webhook.md) | |
+**Pagination** | [**Pagination**](Pagination.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/src/Api/AuthenticationApi.cs b/src/Api/AuthenticationApi.cs
index 4df294a..ec617a7 100644
--- a/src/Api/AuthenticationApi.cs
+++ b/src/Api/AuthenticationApi.cs
@@ -121,7 +121,7 @@ public ApiResponse authenticateWithHttpInfo(AuthenticatePayload aut
///
- /// Refresh token Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
+ /// Refresh token Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
///
/// Thrown when fails to make API call
///
@@ -134,7 +134,7 @@ public AccessToken refresh(RefreshTokenPayload refreshTokenPayload)
}
///
- /// Refresh token Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
+ /// Refresh token Use the refresh endpoint with the refresh token you received when you first authenticated using the api-key endpoint. Send the refresh token in the body of your request. The api.video API returns a new access token that is valid for one hour (3600 seconds) and a new refresh token.
///
/// Thrown when fails to make API call
///
diff --git a/src/Api/CaptionsApi.cs b/src/Api/CaptionsApi.cs
index 531ad8f..c1f526e 100644
--- a/src/Api/CaptionsApi.cs
+++ b/src/Api/CaptionsApi.cs
@@ -338,7 +338,7 @@ public ApiResponse getWithHttpInfo(string videoId, string language)
/// Update caption To have the captions on automatically, use this PATCH to set default: true.
///
/// Thrown when fails to make API call
- /// The unique identifier for the video you want to have automatic captions for.
+ /// The unique identifier for the video you want to have automatic captions for.
/// A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
///
@@ -353,7 +353,7 @@ public Caption update(string videoId, string language, CaptionsUpdatePayload cap
/// Update caption To have the captions on automatically, use this PATCH to set default: true.
///
/// Thrown when fails to make API call
- /// The unique identifier for the video you want to have automatic captions for.
+ /// The unique identifier for the video you want to have automatic captions for.
/// A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
///
diff --git a/src/Api/ChaptersApi.cs b/src/Api/ChaptersApi.cs
index baef989..466c619 100644
--- a/src/Api/ChaptersApi.cs
+++ b/src/Api/ChaptersApi.cs
@@ -43,7 +43,7 @@ public ChaptersApi(ApiClient apiClient)
/// Delete a chapter
///
/// Thrown when fails to make API call
- /// The unique identifier for the video you want to delete a chapter from.
+ /// The unique identifier for the video you want to delete a chapter from.
/// A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
///
@@ -56,7 +56,7 @@ public void delete(string videoId, string language)
/// Delete a chapter
///
/// Thrown when fails to make API call
- /// The unique identifier for the video you want to delete a chapter from.
+ /// The unique identifier for the video you want to delete a chapter from.
/// A valid [BCP 47](https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers) language representation.
/// ApiResponse of Object(void)
diff --git a/src/Api/LiveStreamsApi.cs b/src/Api/LiveStreamsApi.cs
index cb71c85..71e989b 100644
--- a/src/Api/LiveStreamsApi.cs
+++ b/src/Api/LiveStreamsApi.cs
@@ -528,7 +528,7 @@ public ApiResponse updateWithHttpInfo(string liveStreamId, LiveStrea
///
- /// Create live stream A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
+ /// Create live stream A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
///
/// Thrown when fails to make API call
///
@@ -541,7 +541,7 @@ public LiveStream create(LiveStreamCreationPayload liveStreamCreationPayload)
}
///
- /// Create live stream A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
+ /// Create live stream A live stream will give you the 'connection point' to RTMP your video stream to api.video. It will also give you the details for viewers to watch the same livestream. The public=false 'private livestream' is available as a BETA feature, and should be limited to livestreams of 3,000 viewers or fewer. See our [Live Stream Tutorial](https://api.video/blog/tutorials/live-stream-tutorial) for a walkthrough of this API with OBS. Your RTMP endpoint for the livestream is rtmp://broadcast.api.video/s/{streamKey}
///
/// Thrown when fails to make API call
///
diff --git a/src/Api/PlayerThemesApi.cs b/src/Api/PlayerThemesApi.cs
index 7f7fcec..fd3fb22 100644
--- a/src/Api/PlayerThemesApi.cs
+++ b/src/Api/PlayerThemesApi.cs
@@ -574,30 +574,30 @@ public ApiResponse createWithHttpInfo(PlayerThemeCreationPayload pl
///
- /// Upload a logo The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
+ /// Upload a logo The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
///
/// Thrown when fails to make API call
/// The unique identifier for the player.
/// The name of the file you want to use for your logo.
-/// The path to the file you want to upload and use as a logo.
+/// A public link that you want to advertise in your player. For example, you could add a link to your company. When a viewer clicks on your logo, they will be taken to this address. (optional)
/// PlayerTheme
- public PlayerTheme uploadLogo(string playerId, System.IO.Stream file, string link)
+ public PlayerTheme uploadLogo(string playerId, System.IO.Stream file, string link = default)
{
ApiResponse localVarResponse = uploadLogoWithHttpInfo(playerId, file, link);
return localVarResponse.Data;
}
///
- /// Upload a logo The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
+ /// Upload a logo The uploaded image maximum size should be 200x100 and its weight should be 200KB. It will be scaled down to 30px height and converted to PNG to be displayed in the player.
///
/// Thrown when fails to make API call
/// The unique identifier for the player.
/// The name of the file you want to use for your logo.
-/// The path to the file you want to upload and use as a logo.
+/// A public link that you want to advertise in your player. For example, you could add a link to your company. When a viewer clicks on your logo, they will be taken to this address. (optional)
/// ApiResponse of PlayerTheme
- public ApiResponse uploadLogoWithHttpInfo(string playerId, System.IO.Stream file, string link)
+ public ApiResponse uploadLogoWithHttpInfo(string playerId, System.IO.Stream file, string link = default)
{
@@ -608,9 +608,6 @@ public ApiResponse uploadLogoWithHttpInfo(string playerId, System.I
// verify the required parameter 'file' is set
if (file == null)
throw new ApiException(400, "Missing required parameter 'file' when calling PlayerThemesApi->uploadLogo");
- // verify the required parameter 'link' is set
- if (link == null)
- throw new ApiException(400, "Missing required parameter 'link' when calling PlayerThemesApi->uploadLogo");
var localVarPath = "/players/{playerId}/logo";
diff --git a/src/Api/RawStatisticsApi.cs b/src/Api/RawStatisticsApi.cs
index 580cfca..5b62016 100644
--- a/src/Api/RawStatisticsApi.cs
+++ b/src/Api/RawStatisticsApi.cs
@@ -44,7 +44,7 @@ public RawStatisticsApi(ApiClient apiClient)
///
/// Thrown when fails to make API call
/// The unique identifier for the live stream you want to retrieve analytics for.
-/// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
+/// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
/// Choose the number of search results to return per page. Minimum value: 1 (optional, default to 1)
/// Results per page. Allowed values 1-100, default is 25. (optional, default to 25)
@@ -60,7 +60,7 @@ public RawStatisticsListLiveStreamAnalyticsResponse listLiveStreamSessions(strin
///
/// Thrown when fails to make API call
/// The unique identifier for the live stream you want to retrieve analytics for.
-/// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
+/// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
/// Choose the number of search results to return per page. Minimum value: 1 (optional, default to 1)
/// Results per page. Allowed values 1-100, default is 25. (optional, default to 25)
@@ -151,7 +151,7 @@ public APIlistLiveStreamSessionsRequest(RawStatisticsApi instance, string liveSt
///
/// Set period
///
- /// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
+ /// Period must have one of the following formats: - For a day : \"2018-01-01\", - For a week: \"2018-W01\", - For a month: \"2018-01\" - For a year: \"2018\" For a range period: - Date range: \"2018-01-01/2018-01-15\" (optional)
/// APIlistLiveStreamSessionsRequest
public APIlistLiveStreamSessionsRequest Period(string period) {
this.period = period;
@@ -356,13 +356,13 @@ private APIlistSessionEventsRequest copy() {
///
/// Thrown when fails to make API call
/// The unique identifier for the video you want to retrieve session information for.
-/// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
+/// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
/// Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. (optional)
/// Choose the number of search results to return per page. Minimum value: 1 (optional, default to 1)
/// Results per page. Allowed values 1-100, default is 25. (optional, default to 25)
/// RawStatisticsListSessionsResponse
- public RawStatisticsListSessionsResponse listVideoSessions(string videoId, string period = default, List metadata = default, int? currentPage = default, int? pageSize = default)
+ public RawStatisticsListSessionsResponse listVideoSessions(string videoId, string period = default, Dictionary metadata = default, int? currentPage = default, int? pageSize = default)
{
ApiResponse localVarResponse = listVideoSessionsWithHttpInfo(videoId, period, metadata, currentPage, pageSize);
return localVarResponse.Data;
@@ -373,13 +373,13 @@ public RawStatisticsListSessionsResponse listVideoSessions(string videoId, strin
///
/// Thrown when fails to make API call
/// The unique identifier for the video you want to retrieve session information for.
-/// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
+/// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
/// Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. (optional)
/// Choose the number of search results to return per page. Minimum value: 1 (optional, default to 1)
/// Results per page. Allowed values 1-100, default is 25. (optional, default to 25)
/// ApiResponse of RawStatisticsListSessionsResponse
- public ApiResponse listVideoSessionsWithHttpInfo(string videoId, string period = default, List metadata = default, int? currentPage = default, int? pageSize = default)
+ public ApiResponse listVideoSessionsWithHttpInfo(string videoId, string period = default, Dictionary metadata = default, int? currentPage = default, int? pageSize = default)
{
@@ -414,7 +414,7 @@ public ApiResponse listVideoSessionsWithHttpI
if (videoId != null) localVarPathParams.Add("videoId", this.ApiClient.ParameterToString(videoId)); // path parameter
if (period != null) localVarQueryParams.AddRange(this.ApiClient.ParameterToKeyValuePairs("", "period", period)); // query parameter
- if (metadata != null) localVarQueryParams.AddRange(this.ApiClient.ParameterToKeyValuePairs("multi", "metadata", metadata)); // query parameter
+ if (metadata != null) localVarQueryParams.AddRange(this.ApiClient.ParameterToKeyValuePairs("", "metadata", metadata)); // query parameter
if (currentPage != null) localVarQueryParams.AddRange(this.ApiClient.ParameterToKeyValuePairs("", "currentPage", currentPage)); // query parameter
if (pageSize != null) localVarQueryParams.AddRange(this.ApiClient.ParameterToKeyValuePairs("", "pageSize", pageSize)); // query parameter
@@ -449,7 +449,7 @@ public APIlistVideoSessionsRequest listVideoSessions(string videoId) {
public class APIlistVideoSessionsRequest {
private string videoId;
private string period;
- private List metadata;
+ private Dictionary metadata;
private int? currentPage;
private int? pageSize;
@@ -468,7 +468,7 @@ public APIlistVideoSessionsRequest(RawStatisticsApi instance, string videoId) {
///
/// Set period
///
- /// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
+ /// Period must have one of the following formats: - For a day : 2018-01-01, - For a week: 2018-W01, - For a month: 2018-01 - For a year: 2018 For a range period: - Date range: 2018-01-01/2018-01-15 (optional)
/// APIlistVideoSessionsRequest
public APIlistVideoSessionsRequest Period(string period) {
this.period = period;
@@ -480,7 +480,7 @@ public APIlistVideoSessionsRequest Period(string period) {
///
/// Metadata and Dynamic Metadata filter. Send an array of key value pairs you want to filter sessios with. (optional)
/// APIlistVideoSessionsRequest
- public APIlistVideoSessionsRequest Metadata(List metadata) {
+ public APIlistVideoSessionsRequest Metadata(Dictionary metadata) {
this.metadata = metadata;
return this;
}
diff --git a/src/Api/VideosApi.cs b/src/Api/VideosApi.cs
index f3bad07..9950950 100644
--- a/src/Api/VideosApi.cs
+++ b/src/Api/VideosApi.cs
@@ -800,7 +800,7 @@ public ApiResponse