From d59a079b7a7a2ca1438a0653fd46538faabc85c0 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 00:37:03 +1200 Subject: [PATCH 1/7] =?UTF-8?q?feat(client)!:=20unwrap=20the=20response=20?= =?UTF-8?q?envelope=20=E2=80=94=20clients=20return=20T=20/=20ICollection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements the agreed facade-unwrap (option 2). The codegen overlay now strips TheTVDB's { data, status, links } envelope from every response schema, so the generated clients return the entity (T) or collection (ICollection) directly instead of NSwag ResponseNN wrappers. At runtime, EnvelopeUnwrappingHandler (outermost in the HttpClient pipeline) peels `data` off successful JSON responses; non-JSON, error, and already-unwrapped bodies pass through. - build/Build.cs: StripDataEnvelope overlay (66 responses). - Handlers/EnvelopeUnwrappingHandler.cs + Bootstrapper registration. - Regenerated clients/models with unwrapped return types. - EnvelopeUnwrappingSpecs (4 specs) via InternalsVisibleTo; all pass. - README: fix stale Fallout link → Fallout-build/Fallout. Note: the 8 paginated list endpoints currently return ICollection (links dropped). Page with pagination links is the remaining step. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- build/Build.cs | 34 + src/TvdbClient.Models/TvdbModels.cs | 1411 +---------------- src/TvdbClient/Clients/TvdbClient.cs | 390 ++--- src/TvdbClient/Extensions/Bootstrapper.cs | 4 + .../Handlers/EnvelopeUnwrappingHandler.cs | 42 + src/TvdbClient/TvdbClient.csproj | 3 + .../EnvelopeUnwrappingSpecs.cs | 71 + 8 files changed, 352 insertions(+), 1605 deletions(-) create mode 100644 src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs create mode 100644 tests/TvdbClient.Specs/EnvelopeUnwrappingSpecs.cs diff --git a/README.md b/README.md index c67c9c8..6eee916 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ var record = response.Data; // { data, status } envel ## Building -This project builds with **[Fallout](https://github.com/ChrisonSimtian/Fallout)** +This project builds with **[Fallout](https://github.com/Fallout-build/Fallout)** (a NUKE fork) — the build lives in `build/Build.cs` and runs through the `./build.ps1` bootstrapper (no global tool required). CI (`build.yml`) invokes the same targets. diff --git a/build/Build.cs b/build/Build.cs index b8dccbb..8bd5dc4 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -88,6 +88,9 @@ partial class Build : FalloutBuild var hoisted = HoistInlineParameterEnums(document); Log.Information("Overlay: hoisted {Count} inline parameter enum(s) to named schemas", hoisted); + var unwrapped = StripDataEnvelope(document); + Log.Information("Overlay: stripped the data envelope from {Count} response(s)", unwrapped); + // DTOs only → Tvdb.Models (TvdbClient.Models project). No client interfaces/exception // classes here — those belong with the generic client core. var contracts = new CSharpClientGenerator(document, @@ -201,6 +204,37 @@ static int HoistInlineParameterEnums(OpenApiDocument document) return count; } + /// + /// TheTVDB wraps every payload in a { data, status, links? } envelope. Replace each + /// JSON response schema with its inner data schema so the generated clients return the + /// entity (T) or collection (ICollection<T>) directly. The envelope is + /// peeled off the wire at runtime by EnvelopeUnwrappingHandler; pagination links are + /// surfaced separately for the list endpoints. + /// + static int StripDataEnvelope(OpenApiDocument document) + { + var count = 0; + foreach (var pathItem in document.Paths.Values) + foreach (var operation in pathItem.Values) + { + if (operation.Responses is null) + continue; + + foreach (var response in operation.Responses.Values) + { + if (!response.Content.TryGetValue("application/json", out var media) || media.Schema is null) + continue; + if (media.Schema.Properties.TryGetValue("data", out var dataSchema)) + { + media.Schema = dataSchema; + count++; + } + } + } + + return count; + } + /// PascalCase an identifier, splitting on non-alphanumeric separators. static string Pascalize(string value) { diff --git a/src/TvdbClient.Models/TvdbModels.cs b/src/TvdbClient.Models/TvdbModels.cs index afbc461..479cc15 100644 --- a/src/TvdbClient.Models/TvdbModels.cs +++ b/src/TvdbClient.Models/TvdbModels.cs @@ -3286,1413 +3286,6 @@ public System.Collections.Generic.IDictionary AdditionalProperti [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] public partial class Response - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Data Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response2 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public ArtworkBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response3 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public ArtworkExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response4 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response5 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response6 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response7 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public AwardBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response8 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public AwardExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response9 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public AwardCategoryBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response10 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public AwardCategoryExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response11 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Character Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response12 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response13 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response14 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Company Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response15 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response16 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response17 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response18 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response19 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public EpisodeBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response20 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public EpisodeExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response21 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Translation Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response22 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response23 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response24 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public GenreBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response25 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response26 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response27 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response28 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public ListBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response29 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public ListBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response30 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public ListExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response31 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response32 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response33 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public MovieBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response34 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public MovieExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response35 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response36 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public MovieBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response37 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Translation Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response38 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response39 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response40 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public PeopleBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response41 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public PeopleExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response42 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Translation Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response43 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response44 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response45 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response46 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response47 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeasonBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response48 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeasonExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response49 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response50 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Translation Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response51 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response52 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeriesBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response53 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeriesExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response54 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeriesBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response55 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeriesExtendedRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response56 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Data2 Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response57 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Data3 Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response58 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response59 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public SeriesBaseRecord Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response60 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public Translation Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response61 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response62 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response63 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public System.Collections.Generic.ICollection Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("links")] - public Links Links { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response64 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public object Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response65 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public object Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Response66 - { - - [System.Text.Json.Serialization.JsonPropertyName("data")] - public object Data { get; set; } - - [System.Text.Json.Serialization.JsonPropertyName("status")] - public string Status { get; set; } - - private System.Collections.Generic.IDictionary _additionalProperties; - - [System.Text.Json.Serialization.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties ?? (_additionalProperties = new System.Collections.Generic.Dictionary()); } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Data { [System.Text.Json.Serialization.JsonPropertyName("token")] @@ -4710,7 +3303,7 @@ public System.Collections.Generic.IDictionary AdditionalProperti } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Data2 + public partial class Response2 { [System.Text.Json.Serialization.JsonPropertyName("series")] @@ -4731,7 +3324,7 @@ public System.Collections.Generic.IDictionary AdditionalProperti } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Data3 + public partial class Response3 { [System.Text.Json.Serialization.JsonPropertyName("series")] diff --git a/src/TvdbClient/Clients/TvdbClient.cs b/src/TvdbClient/Clients/TvdbClient.cs index 87bf31e..8192845 100644 --- a/src/TvdbClient/Clients/TvdbClient.cs +++ b/src/TvdbClient/Clients/TvdbClient.cs @@ -278,7 +278,7 @@ public partial interface IArtworkClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -287,7 +287,7 @@ public partial interface IArtworkClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -330,7 +330,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -375,7 +375,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -427,7 +427,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -473,7 +473,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -637,7 +637,7 @@ public partial interface IArtwork_StatusesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -679,7 +679,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -720,7 +720,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -872,7 +872,7 @@ public partial interface IArtwork_TypesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -914,7 +914,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -955,7 +955,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1107,7 +1107,7 @@ public partial interface IAwardsClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -1116,7 +1116,7 @@ public partial interface IAwardsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -1125,7 +1125,7 @@ public partial interface IAwardsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -1167,7 +1167,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -1208,7 +1208,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1248,7 +1248,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -1293,7 +1293,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1345,7 +1345,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -1391,7 +1391,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1556,7 +1556,7 @@ public partial interface IAward_CategoriesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -1565,7 +1565,7 @@ public partial interface IAward_CategoriesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -1608,7 +1608,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -1653,7 +1653,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1705,7 +1705,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -1751,7 +1751,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -1916,7 +1916,7 @@ public partial interface ICharactersClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -1959,7 +1959,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -2004,7 +2004,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -2169,7 +2169,7 @@ public partial interface ICompaniesClient : ITvdbClient /// name /// response /// A server side error occurred. - System.Threading.Tasks.Task CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -2177,7 +2177,7 @@ public partial interface ICompaniesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -2186,7 +2186,7 @@ public partial interface ICompaniesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -2229,7 +2229,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// name /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -2276,7 +2276,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -2315,7 +2315,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -2356,7 +2356,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -2396,7 +2396,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -2441,7 +2441,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -2605,7 +2605,7 @@ public partial interface IContent_RatingsClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task RatingsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> RatingsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -2647,7 +2647,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task RatingsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> RatingsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -2688,7 +2688,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -2840,7 +2840,7 @@ public partial interface ICountriesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task CountriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CountriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -2882,7 +2882,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CountriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> CountriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -2923,7 +2923,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3069,7 +3069,7 @@ public partial interface IEntity_TypesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task EntitiesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> EntitiesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -3111,7 +3111,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task EntitiesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> EntitiesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -3152,7 +3152,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3305,7 +3305,7 @@ public partial interface IEpisodesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -3314,7 +3314,7 @@ public partial interface IEpisodesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -3324,7 +3324,7 @@ public partial interface IEpisodesClient : ITvdbClient /// meta /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, GetEpisodeExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, GetEpisodeExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -3334,7 +3334,7 @@ public partial interface IEpisodesClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -3377,7 +3377,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -3424,7 +3424,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3464,7 +3464,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -3509,7 +3509,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3562,7 +3562,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// meta /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetEpisodeExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetEpisodeExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -3614,7 +3614,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3667,7 +3667,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -3717,7 +3717,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -3881,7 +3881,7 @@ public partial interface IGendersClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task GendersAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GendersAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -3923,7 +3923,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GendersAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> GendersAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -3964,7 +3964,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -4110,7 +4110,7 @@ public partial interface IGenresClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task GenresGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> GenresGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -4119,7 +4119,7 @@ public partial interface IGenresClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -4161,7 +4161,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GenresGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> GenresGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -4202,7 +4202,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -4242,7 +4242,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -4287,7 +4287,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -4451,7 +4451,7 @@ public partial interface IInspirationTypesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -4493,7 +4493,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -4534,7 +4534,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -4686,7 +4686,7 @@ public partial interface ILanguagesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task LanguagesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> LanguagesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -4728,7 +4728,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task LanguagesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> LanguagesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -4769,7 +4769,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -4922,7 +4922,7 @@ public partial interface IListsClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -4931,7 +4931,7 @@ public partial interface IListsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -4940,7 +4940,7 @@ public partial interface IListsClient : ITvdbClient /// slug /// response /// A server side error occurred. - System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -4949,7 +4949,7 @@ public partial interface IListsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -4959,7 +4959,7 @@ public partial interface IListsClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -5002,7 +5002,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -5049,7 +5049,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5089,7 +5089,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -5134,7 +5134,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5186,7 +5186,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// slug /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (slug == null) throw new System.ArgumentNullException("slug"); @@ -5231,7 +5231,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5283,7 +5283,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -5329,7 +5329,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5382,7 +5382,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -5432,7 +5432,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5597,7 +5597,7 @@ public partial interface IMoviesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5606,7 +5606,7 @@ public partial interface IMoviesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5617,7 +5617,7 @@ public partial interface IMoviesClient : ITvdbClient /// reduce the payload and returns the short version of this record without characters, artworks and trailers. /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, GetMovieExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, GetMovieExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5633,7 +5633,7 @@ public partial interface IMoviesClient : ITvdbClient /// release year /// response /// A server side error occurred. - System.Threading.Tasks.Task FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5642,7 +5642,7 @@ public partial interface IMoviesClient : ITvdbClient /// slug /// response /// A server side error occurred. - System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5652,7 +5652,7 @@ public partial interface IMoviesClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -5695,7 +5695,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -5742,7 +5742,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5782,7 +5782,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -5827,7 +5827,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5881,7 +5881,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// reduce the payload and returns the short version of this record without characters, artworks and trailers. /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetMovieExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetMovieExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -5937,7 +5937,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -5996,7 +5996,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// release year /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (country == null) throw new System.ArgumentNullException("country"); @@ -6071,7 +6071,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6117,7 +6117,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// slug /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (slug == null) throw new System.ArgumentNullException("slug"); @@ -6162,7 +6162,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6215,7 +6215,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -6265,7 +6265,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6429,7 +6429,7 @@ public partial interface IMovie_StatusesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -6471,7 +6471,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -6512,7 +6512,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6665,7 +6665,7 @@ public partial interface IPeopleClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -6674,7 +6674,7 @@ public partial interface IPeopleClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -6684,7 +6684,7 @@ public partial interface IPeopleClient : ITvdbClient /// meta /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, GetPeopleExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, GetPeopleExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -6694,7 +6694,7 @@ public partial interface IPeopleClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -6737,7 +6737,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -6784,7 +6784,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6824,7 +6824,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -6869,7 +6869,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -6922,7 +6922,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// meta /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetPeopleExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetPeopleExtendedMeta? meta = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -6974,7 +6974,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -7027,7 +7027,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -7077,7 +7077,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -7241,7 +7241,7 @@ public partial interface IPeople_TypesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -7283,7 +7283,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -7324,7 +7324,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -7483,7 +7483,7 @@ public partial interface ISearchClient : ITvdbClient /// Limit results. /// response /// A server side error occurred. - System.Threading.Tasks.Task SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7492,7 +7492,7 @@ public partial interface ISearchClient : ITvdbClient /// Search for a specific remote id. Allows searching for an IMDB or EIDR id, for example. /// response /// A server side error occurred. - System.Threading.Tasks.Task RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -7547,7 +7547,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// Limit results. /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -7642,7 +7642,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -7688,7 +7688,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// Search for a specific remote id. Allows searching for an IMDB or EIDR id, for example. /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (remoteId == null) throw new System.ArgumentNullException("remoteId"); @@ -7733,7 +7733,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -7886,7 +7886,7 @@ public partial interface ISeasonsClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7895,7 +7895,7 @@ public partial interface ISeasonsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7904,7 +7904,7 @@ public partial interface ISeasonsClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7912,7 +7912,7 @@ public partial interface ISeasonsClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7922,7 +7922,7 @@ public partial interface ISeasonsClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -7965,7 +7965,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -8012,7 +8012,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8052,7 +8052,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -8097,7 +8097,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8149,7 +8149,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -8195,7 +8195,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8246,7 +8246,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -8287,7 +8287,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8328,7 +8328,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -8378,7 +8378,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8543,7 +8543,7 @@ public partial interface ISeriesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8552,7 +8552,7 @@ public partial interface ISeriesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8563,7 +8563,7 @@ public partial interface ISeriesClient : ITvdbClient /// type /// response /// A server side error occurred. - System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8572,7 +8572,7 @@ public partial interface ISeriesClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8583,7 +8583,7 @@ public partial interface ISeriesClient : ITvdbClient /// reduce the payload and returns the short version of this record without characters and artworks /// response /// A server side error occurred. - System.Threading.Tasks.Task ExtendedAsync(long id, GetSeriesExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task ExtendedAsync(long id, GetSeriesExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8594,7 +8594,7 @@ public partial interface ISeriesClient : ITvdbClient /// airDate of the episode, format is yyyy-mm-dd /// response /// A server side error occurred. - System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = null, int? episodeNumber = null, string airDate = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = null, int? episodeNumber = null, string airDate = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8604,7 +8604,7 @@ public partial interface ISeriesClient : ITvdbClient /// season-type /// response /// A server side error occurred. - System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8621,7 +8621,7 @@ public partial interface ISeriesClient : ITvdbClient /// release year /// response /// A server side error occurred. - System.Threading.Tasks.Task FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8630,7 +8630,7 @@ public partial interface ISeriesClient : ITvdbClient /// slug /// response /// A server side error occurred. - System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8640,7 +8640,7 @@ public partial interface ISeriesClient : ITvdbClient /// language /// response /// A server side error occurred. - System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -8683,7 +8683,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -8730,7 +8730,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8770,7 +8770,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -8815,7 +8815,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8869,7 +8869,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// type /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -8925,7 +8925,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -8977,7 +8977,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -9023,7 +9023,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9077,7 +9077,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// reduce the payload and returns the short version of this record without characters and artworks /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetSeriesExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task ExtendedAsync(long id, GetSeriesExtendedMeta? meta = null, bool? @short = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -9133,7 +9133,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9187,7 +9187,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// airDate of the episode, format is yyyy-mm-dd /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = null, int? episodeNumber = null, string airDate = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = null, int? episodeNumber = null, string airDate = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -9255,7 +9255,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9308,7 +9308,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// season-type /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -9369,7 +9369,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9429,7 +9429,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// release year /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (country == null) throw new System.ArgumentNullException("country"); @@ -9508,7 +9508,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9554,7 +9554,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// slug /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (slug == null) throw new System.ArgumentNullException("slug"); @@ -9599,7 +9599,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9652,7 +9652,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// language /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -9702,7 +9702,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -9866,7 +9866,7 @@ public partial interface ISeries_StatusesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -9908,7 +9908,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -9949,7 +9949,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -10101,7 +10101,7 @@ public partial interface ISource_TypesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -10143,7 +10143,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -10184,7 +10184,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -10337,7 +10337,7 @@ public partial interface IUpdatesClient : ITvdbClient /// name /// response /// A server side error occurred. - System.Threading.Tasks.Task UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -10380,7 +10380,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// name /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (since == null) throw new System.ArgumentNullException("since"); @@ -10439,7 +10439,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -10597,7 +10597,7 @@ public partial interface IUser_infoClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -10606,7 +10606,7 @@ public partial interface IUser_infoClient : ITvdbClient /// id /// response /// A server side error occurred. - System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -10648,7 +10648,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -10689,7 +10689,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -10729,7 +10729,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// id /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (id == null) throw new System.ArgumentNullException("id"); @@ -10774,7 +10774,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); @@ -10926,7 +10926,7 @@ public partial interface IFavoritesClient : ITvdbClient /// /// response /// A server side error occurred. - System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -10976,7 +10976,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -11017,7 +11017,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() var status_ = (int)response_.StatusCode; if (status_ == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); + var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); if (objectResponse_.Object == null) { throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); diff --git a/src/TvdbClient/Extensions/Bootstrapper.cs b/src/TvdbClient/Extensions/Bootstrapper.cs index b1cd8c6..85a7442 100644 --- a/src/TvdbClient/Extensions/Bootstrapper.cs +++ b/src/TvdbClient/Extensions/Bootstrapper.cs @@ -37,6 +37,7 @@ public static IServiceCollection AddTvdbClient(this IServiceCollection builder, builder.Configure(config.GetRequiredSection("TvdbConfiguration")); builder.TryAddSingleton(); builder.TryAddTransient(); + builder.TryAddTransient(); string baseUrl = config.GetValue("TvdbConfiguration:BaseUrl") ?? "https://api4.thetvdb.com/v4"; builder @@ -44,6 +45,9 @@ public static IServiceCollection AddTvdbClient(this IServiceCollection builder, { client.BaseAddress = new Uri(baseUrl.EnsureTrailingSlash()); }) + // Outermost: peel the { data, status, links } envelope off the response so the + // generated clients (which expect the inner data shape) deserialize cleanly. + .AddHttpMessageHandler() .AddHttpMessageHandler(); /* Inject all Tvdb Clients at once. diff --git a/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs b/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs new file mode 100644 index 0000000..bd3e288 --- /dev/null +++ b/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs @@ -0,0 +1,42 @@ +using System.Net.Http; +using System.Text; +using System.Text.Json; + +namespace Tvdb.Handlers; + +/// +/// TheTVDB wraps every payload in a { data, status, links? } envelope. The generated +/// clients are configured (via the codegen overlay) to expect the inner data shape +/// directly, so this handler peels the envelope off successful JSON responses before the client +/// deserializes them. Non-JSON, error, or already-unwrapped responses pass through untouched. +/// +internal sealed class EnvelopeUnwrappingHandler : DelegatingHandler +{ + protected override async Task SendAsync( + HttpRequestMessage request, CancellationToken cancellationToken) + { + var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); + + if (!response.IsSuccessStatusCode || + response.Content.Headers.ContentType?.MediaType != "application/json") + { + return response; + } + + var json = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + if (string.IsNullOrWhiteSpace(json)) + return response; + + using var document = JsonDocument.Parse(json); + if (document.RootElement.ValueKind != JsonValueKind.Object || + !document.RootElement.TryGetProperty("data", out var data)) + { + return response; + } + + var original = response.Content; + response.Content = new StringContent(data.GetRawText(), Encoding.UTF8, "application/json"); + original.Dispose(); + return response; + } +} diff --git a/src/TvdbClient/TvdbClient.csproj b/src/TvdbClient/TvdbClient.csproj index 0756d69..365f80e 100644 --- a/src/TvdbClient/TvdbClient.csproj +++ b/src/TvdbClient/TvdbClient.csproj @@ -13,6 +13,9 @@ + + + TVDB Api Client C# Api Client (HttpClient) for TVDB Api diff --git a/tests/TvdbClient.Specs/EnvelopeUnwrappingSpecs.cs b/tests/TvdbClient.Specs/EnvelopeUnwrappingSpecs.cs new file mode 100644 index 0000000..1be9898 --- /dev/null +++ b/tests/TvdbClient.Specs/EnvelopeUnwrappingSpecs.cs @@ -0,0 +1,71 @@ +using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using FluentAssertions; +using Tvdb.Handlers; +using Xunit; + +namespace TvdbClient.Specs; + +/// +/// The generated clients expect the inner `data` shape (the codegen overlay strips the +/// envelope), so must peel `{ data, status }` off +/// successful JSON responses — and leave everything else alone. +/// +public class EnvelopeUnwrappingSpecs +{ + static HttpClient ClientReturning(HttpStatusCode status, string body, string mediaType = "application/json") + => new(new EnvelopeUnwrappingHandler { InnerHandler = new StubHandler(status, body, mediaType) }); + + [Fact] + public async Task Unwraps_the_data_envelope_on_success() + { + var http = ClientReturning(HttpStatusCode.OK, """{"data":{"id":42,"name":"X"},"status":"success"}"""); + + var body = await (await http.GetAsync("http://tvdb.test/series/42")).Content.ReadAsStringAsync(); + + body.Should().Be("""{"id":42,"name":"X"}"""); + } + + [Fact] + public async Task Leaves_a_body_without_a_data_property_untouched() + { + var http = ClientReturning(HttpStatusCode.OK, """{"token":"abc"}"""); + + var body = await (await http.GetAsync("http://tvdb.test/whatever")).Content.ReadAsStringAsync(); + + body.Should().Be("""{"token":"abc"}"""); + } + + [Fact] + public async Task Leaves_error_responses_untouched() + { + var http = ClientReturning(HttpStatusCode.NotFound, """{"data":{"id":1},"status":"failure"}"""); + + var response = await http.GetAsync("http://tvdb.test/series/1"); + + response.StatusCode.Should().Be(HttpStatusCode.NotFound); + (await response.Content.ReadAsStringAsync()).Should().Contain("\"data\""); + } + + [Fact] + public async Task Leaves_non_json_responses_untouched() + { + var http = ClientReturning(HttpStatusCode.OK, "plain text", mediaType: "text/plain"); + + var body = await (await http.GetAsync("http://tvdb.test/thing")).Content.ReadAsStringAsync(); + + body.Should().Be("plain text"); + } + + private sealed class StubHandler(HttpStatusCode status, string body, string mediaType) : HttpMessageHandler + { + protected override Task SendAsync(HttpRequestMessage request, CancellationToken ct) + => Task.FromResult(new HttpResponseMessage(status) + { + Content = new StringContent(body, Encoding.UTF8, mediaType), + }); + } +} From 3e6512df22fb70c5e4cb0ccb7d8cdc81d2bb9651 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 00:47:47 +1200 Subject: [PATCH 2/7] feat(client): Page for the 8 paginated list endpoints + long params MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Completes the unwrap: the paginated list endpoints now surface a generic Page (Items + Links + Status + HasNext/HasPrevious/TotalItems/PageSize) instead of a bare collection that dropped the pagination links. - Page (Abstractions). - TvdbResponseContext: an async-flow-local capture the EnvelopeUnwrappingHandler fills with links/status; the mutable capture flows down into the handler and is read back by the wrapper (keeps generated clients returning plain collections). - TvdbPagingExtensions: `GetPageAsync` overloads for the 8 paged clients (series/movies/episodes/people/lists/seasons/companies + updates). - Overlay now coerces ALL integer params (page/year/since/… not just path ids) number → long; no float params exist in the API. - Specs: PagingSpecs (end-to-end links capture) + a Mockly-backed SeriesClientSpecs (client deserialization). 9 specs pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- build/Build.cs | 17 +- src/TvdbClient.Abstractions/Page.cs | 39 +++ src/TvdbClient.Models/TvdbModels.cs | 236 ++++++------------ src/TvdbClient/Clients/TvdbClient.cs | 44 ++-- .../Handlers/EnvelopeUnwrappingHandler.cs | 11 + src/TvdbClient/Paging/TvdbPagingExtensions.cs | 50 ++++ src/TvdbClient/Paging/TvdbResponseContext.cs | 40 +++ tests/TvdbClient.Specs/PagingSpecs.cs | 57 +++++ tests/TvdbClient.Specs/SeriesClientSpecs.cs | 30 +++ 9 files changed, 337 insertions(+), 187 deletions(-) create mode 100644 src/TvdbClient.Abstractions/Page.cs create mode 100644 src/TvdbClient/Paging/TvdbPagingExtensions.cs create mode 100644 src/TvdbClient/Paging/TvdbResponseContext.cs create mode 100644 tests/TvdbClient.Specs/PagingSpecs.cs create mode 100644 tests/TvdbClient.Specs/SeriesClientSpecs.cs diff --git a/build/Build.cs b/build/Build.cs index 8bd5dc4..a0ffb4a 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -82,8 +82,8 @@ partial class Build : FalloutBuild Log.Information("Downloading spec: {Url}", SpecUrl); var document = await OpenApiYamlDocument.FromUrlAsync(SpecUrl); - var coerced = CoerceIntegerIdPathParameters(document); - Log.Information("Overlay: coerced {Count} id path param(s) number → int64", coerced); + var coerced = CoerceIntegerParameters(document); + Log.Information("Overlay: coerced {Count} integer param(s) number → int64", coerced); var hoisted = HoistInlineParameterEnums(document); Log.Information("Overlay: hoisted {Count} inline parameter enum(s) to named schemas", hoisted); @@ -145,18 +145,17 @@ static CSharpClientGeneratorSettings CreateSettings( } /// - /// TheTVDB types integer resource ids as number, which NSwag maps to - /// double. Coerce the path-id parameters to integer/int64. Narrow by - /// design: the only other number fields are the genuinely-float - /// score properties, which must stay double. + /// TheTVDB types every integer parameter (ids, page, year, since, …) + /// as number, which NSwag maps to double. Coerce all number + /// parameters (path and query) to integer/int64 → C# long. Safe: the only genuine + /// floats in the API are the score response properties, which are not parameters. /// - static int CoerceIntegerIdPathParameters(OpenApiDocument document) + static int CoerceIntegerParameters(OpenApiDocument document) { var count = 0; foreach (var pathItem in document.Paths.Values) foreach (var operation in pathItem.Values) - foreach (var parameter in operation.Parameters - .Where(p => p.Kind == OpenApiParameterKind.Path)) + foreach (var parameter in operation.Parameters) { var schema = parameter.Schema; if (schema is { Type: JsonObjectType.Number }) diff --git a/src/TvdbClient.Abstractions/Page.cs b/src/TvdbClient.Abstractions/Page.cs new file mode 100644 index 0000000..e655459 --- /dev/null +++ b/src/TvdbClient.Abstractions/Page.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; +using Tvdb.Models; + +namespace Tvdb.Abstractions; + +/// +/// A page of results from a paginated TheTVDB list endpoint: the items plus the +/// pagination and status peeled from the response envelope. +/// +public sealed class Page +{ + public Page(IReadOnlyList items, Links? links, string? status) + { + Items = items; + Links = links; + Status = status; + } + + /// The items on this page. + public IReadOnlyList Items { get; } + + /// Pagination links (prev/self/next) and totals, or null if absent. + public Links? Links { get; } + + /// The envelope status (e.g. "success"). + public string? Status { get; } + + /// True if the API reported a next page. + public bool HasNext => !string.IsNullOrWhiteSpace(Links?.Next); + + /// True if the API reported a previous page. + public bool HasPrevious => !string.IsNullOrWhiteSpace(Links?.Prev); + + /// Total item count across all pages, when the API provides it. + public int? TotalItems => Links?.Total_items; + + /// Page size, when the API provides it. + public int? PageSize => Links?.Page_size; +} diff --git a/src/TvdbClient.Models/TvdbModels.cs b/src/TvdbClient.Models/TvdbModels.cs index 479cc15..3a43f78 100644 --- a/src/TvdbClient.Models/TvdbModels.cs +++ b/src/TvdbClient.Models/TvdbModels.cs @@ -2813,113 +2813,78 @@ public enum GetMovieExtendedShort } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public enum GetMoviesFilterGenre + public enum GetMoviesFilterGenre : long { - [System.Runtime.Serialization.EnumMember(Value = @"1")] - _1 = 0, + _1 = 1, - [System.Runtime.Serialization.EnumMember(Value = @"2")] - _2 = 1, + _2 = 2, - [System.Runtime.Serialization.EnumMember(Value = @"3")] - _3 = 2, + _3 = 3, - [System.Runtime.Serialization.EnumMember(Value = @"4")] - _4 = 3, + _4 = 4, - [System.Runtime.Serialization.EnumMember(Value = @"5")] - _5 = 4, + _5 = 5, - [System.Runtime.Serialization.EnumMember(Value = @"6")] - _6 = 5, + _6 = 6, - [System.Runtime.Serialization.EnumMember(Value = @"7")] - _7 = 6, + _7 = 7, - [System.Runtime.Serialization.EnumMember(Value = @"8")] - _8 = 7, + _8 = 8, - [System.Runtime.Serialization.EnumMember(Value = @"9")] - _9 = 8, + _9 = 9, - [System.Runtime.Serialization.EnumMember(Value = @"10")] - _10 = 9, + _10 = 10, - [System.Runtime.Serialization.EnumMember(Value = @"11")] - _11 = 10, + _11 = 11, - [System.Runtime.Serialization.EnumMember(Value = @"12")] - _12 = 11, + _12 = 12, - [System.Runtime.Serialization.EnumMember(Value = @"13")] - _13 = 12, + _13 = 13, - [System.Runtime.Serialization.EnumMember(Value = @"14")] - _14 = 13, + _14 = 14, - [System.Runtime.Serialization.EnumMember(Value = @"15")] - _15 = 14, + _15 = 15, - [System.Runtime.Serialization.EnumMember(Value = @"16")] - _16 = 15, + _16 = 16, - [System.Runtime.Serialization.EnumMember(Value = @"17")] - _17 = 16, + _17 = 17, - [System.Runtime.Serialization.EnumMember(Value = @"18")] - _18 = 17, + _18 = 18, - [System.Runtime.Serialization.EnumMember(Value = @"19")] - _19 = 18, + _19 = 19, - [System.Runtime.Serialization.EnumMember(Value = @"21")] - _21 = 19, + _21 = 21, - [System.Runtime.Serialization.EnumMember(Value = @"22")] - _22 = 20, + _22 = 22, - [System.Runtime.Serialization.EnumMember(Value = @"23")] - _23 = 21, + _23 = 23, - [System.Runtime.Serialization.EnumMember(Value = @"24")] - _24 = 22, + _24 = 24, - [System.Runtime.Serialization.EnumMember(Value = @"25")] - _25 = 23, + _25 = 25, - [System.Runtime.Serialization.EnumMember(Value = @"26")] - _26 = 24, + _26 = 26, - [System.Runtime.Serialization.EnumMember(Value = @"27")] - _27 = 25, + _27 = 27, - [System.Runtime.Serialization.EnumMember(Value = @"28")] - _28 = 26, + _28 = 28, - [System.Runtime.Serialization.EnumMember(Value = @"29")] - _29 = 27, + _29 = 29, - [System.Runtime.Serialization.EnumMember(Value = @"30")] - _30 = 28, + _30 = 30, - [System.Runtime.Serialization.EnumMember(Value = @"31")] - _31 = 29, + _31 = 31, - [System.Runtime.Serialization.EnumMember(Value = @"32")] - _32 = 30, + _32 = 32, - [System.Runtime.Serialization.EnumMember(Value = @"33")] - _33 = 31, + _33 = 33, - [System.Runtime.Serialization.EnumMember(Value = @"34")] - _34 = 32, + _34 = 34, - [System.Runtime.Serialization.EnumMember(Value = @"35")] - _35 = 33, + _35 = 35, - [System.Runtime.Serialization.EnumMember(Value = @"36")] - _36 = 34, + _36 = 36, } @@ -2939,17 +2904,14 @@ public enum GetMoviesFilterSort } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public enum GetMoviesFilterStatus + public enum GetMoviesFilterStatus : long { - [System.Runtime.Serialization.EnumMember(Value = @"1")] - _1 = 0, + _1 = 1, - [System.Runtime.Serialization.EnumMember(Value = @"2")] - _2 = 1, + _2 = 2, - [System.Runtime.Serialization.EnumMember(Value = @"3")] - _3 = 2, + _3 = 3, } @@ -2987,113 +2949,78 @@ public enum GetSeriesExtendedShort } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public enum GetSeriesFilterGenre + public enum GetSeriesFilterGenre : long { - [System.Runtime.Serialization.EnumMember(Value = @"1")] - _1 = 0, + _1 = 1, - [System.Runtime.Serialization.EnumMember(Value = @"2")] - _2 = 1, + _2 = 2, - [System.Runtime.Serialization.EnumMember(Value = @"3")] - _3 = 2, + _3 = 3, - [System.Runtime.Serialization.EnumMember(Value = @"4")] - _4 = 3, + _4 = 4, - [System.Runtime.Serialization.EnumMember(Value = @"5")] - _5 = 4, + _5 = 5, - [System.Runtime.Serialization.EnumMember(Value = @"6")] - _6 = 5, + _6 = 6, - [System.Runtime.Serialization.EnumMember(Value = @"7")] - _7 = 6, + _7 = 7, - [System.Runtime.Serialization.EnumMember(Value = @"8")] - _8 = 7, + _8 = 8, - [System.Runtime.Serialization.EnumMember(Value = @"9")] - _9 = 8, + _9 = 9, - [System.Runtime.Serialization.EnumMember(Value = @"10")] - _10 = 9, + _10 = 10, - [System.Runtime.Serialization.EnumMember(Value = @"11")] - _11 = 10, + _11 = 11, - [System.Runtime.Serialization.EnumMember(Value = @"12")] - _12 = 11, + _12 = 12, - [System.Runtime.Serialization.EnumMember(Value = @"13")] - _13 = 12, + _13 = 13, - [System.Runtime.Serialization.EnumMember(Value = @"14")] - _14 = 13, + _14 = 14, - [System.Runtime.Serialization.EnumMember(Value = @"15")] - _15 = 14, + _15 = 15, - [System.Runtime.Serialization.EnumMember(Value = @"16")] - _16 = 15, + _16 = 16, - [System.Runtime.Serialization.EnumMember(Value = @"17")] - _17 = 16, + _17 = 17, - [System.Runtime.Serialization.EnumMember(Value = @"18")] - _18 = 17, + _18 = 18, - [System.Runtime.Serialization.EnumMember(Value = @"19")] - _19 = 18, + _19 = 19, - [System.Runtime.Serialization.EnumMember(Value = @"21")] - _21 = 19, + _21 = 21, - [System.Runtime.Serialization.EnumMember(Value = @"22")] - _22 = 20, + _22 = 22, - [System.Runtime.Serialization.EnumMember(Value = @"23")] - _23 = 21, + _23 = 23, - [System.Runtime.Serialization.EnumMember(Value = @"24")] - _24 = 22, + _24 = 24, - [System.Runtime.Serialization.EnumMember(Value = @"25")] - _25 = 23, + _25 = 25, - [System.Runtime.Serialization.EnumMember(Value = @"26")] - _26 = 24, + _26 = 26, - [System.Runtime.Serialization.EnumMember(Value = @"27")] - _27 = 25, + _27 = 27, - [System.Runtime.Serialization.EnumMember(Value = @"28")] - _28 = 26, + _28 = 28, - [System.Runtime.Serialization.EnumMember(Value = @"29")] - _29 = 27, + _29 = 29, - [System.Runtime.Serialization.EnumMember(Value = @"30")] - _30 = 28, + _30 = 30, - [System.Runtime.Serialization.EnumMember(Value = @"31")] - _31 = 29, + _31 = 31, - [System.Runtime.Serialization.EnumMember(Value = @"32")] - _32 = 30, + _32 = 32, - [System.Runtime.Serialization.EnumMember(Value = @"33")] - _33 = 31, + _33 = 33, - [System.Runtime.Serialization.EnumMember(Value = @"34")] - _34 = 32, + _34 = 34, - [System.Runtime.Serialization.EnumMember(Value = @"35")] - _35 = 33, + _35 = 35, - [System.Runtime.Serialization.EnumMember(Value = @"36")] - _36 = 34, + _36 = 36, } @@ -3128,17 +3055,14 @@ public enum GetSeriesFilterSortType } [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")] - public enum GetSeriesFilterStatus + public enum GetSeriesFilterStatus : long { - [System.Runtime.Serialization.EnumMember(Value = @"1")] - _1 = 0, + _1 = 1, - [System.Runtime.Serialization.EnumMember(Value = @"2")] - _2 = 1, + _2 = 2, - [System.Runtime.Serialization.EnumMember(Value = @"3")] - _3 = 2, + _3 = 3, } diff --git a/src/TvdbClient/Clients/TvdbClient.cs b/src/TvdbClient/Clients/TvdbClient.cs index 8192845..44eb0a1 100644 --- a/src/TvdbClient/Clients/TvdbClient.cs +++ b/src/TvdbClient/Clients/TvdbClient.cs @@ -2169,7 +2169,7 @@ public partial interface ICompaniesClient : ITvdbClient /// name /// response /// A server side error occurred. - System.Threading.Tasks.Task> CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CompaniesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -2229,7 +2229,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// name /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> CompaniesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> CompaniesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -3305,7 +3305,7 @@ public partial interface IEpisodesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> EpisodesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -3377,7 +3377,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> EpisodesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> EpisodesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -4922,7 +4922,7 @@ public partial interface IListsClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ListsGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5002,7 +5002,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> ListsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> ListsGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -5597,7 +5597,7 @@ public partial interface IMoviesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> MoviesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5633,7 +5633,7 @@ public partial interface IMoviesClient : ITvdbClient /// release year /// response /// A server side error occurred. - System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = null, long? contentRating = null, GetMoviesFilterGenre? genre = null, GetMoviesFilterSort? sort = null, GetMoviesFilterStatus? status = null, long? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -5695,7 +5695,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> MoviesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> MoviesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -5996,7 +5996,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// release year /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetMoviesFilterSort? sort = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = null, long? contentRating = null, GetMoviesFilterGenre? genre = null, GetMoviesFilterSort? sort = null, GetMoviesFilterStatus? status = null, long? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (country == null) throw new System.ArgumentNullException("country"); @@ -6665,7 +6665,7 @@ public partial interface IPeopleClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> PeopleGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -6737,7 +6737,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> PeopleGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> PeopleGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -7483,7 +7483,7 @@ public partial interface ISearchClient : ITvdbClient /// Limit results. /// response /// A server side error occurred. - System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, long? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, long? offset = null, long? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7547,7 +7547,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// Limit results. /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, double? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, double? offset = null, double? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, long? year = null, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, long? offset = null, long? limit = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -7886,7 +7886,7 @@ public partial interface ISeasonsClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SeasonsGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -7965,7 +7965,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> SeasonsGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SeasonsGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -8543,7 +8543,7 @@ public partial interface ISeriesClient : ITvdbClient /// page number /// response /// A server side error occurred. - System.Threading.Tasks.Task> SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> SeriesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8621,7 +8621,7 @@ public partial interface ISeriesClient : ITvdbClient /// release year /// response /// A server side error occurred. - System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = null, long? contentRating = null, GetSeriesFilterGenre? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, GetSeriesFilterStatus? status = null, long? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// @@ -8683,7 +8683,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// page number /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> SeriesGetAsync(double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> SeriesGetAsync(long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { var client_ = _httpClient; var disposeClient_ = false; @@ -9429,7 +9429,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// release year /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, double? company = null, double? contentRating = null, double? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, double? status = null, double? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = null, long? contentRating = null, GetSeriesFilterGenre? genre = null, GetSeriesFilterSort? sort = null, GetSeriesFilterSortType? sortType = null, GetSeriesFilterStatus? status = null, long? year = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (country == null) throw new System.ArgumentNullException("country"); @@ -10337,7 +10337,7 @@ public partial interface IUpdatesClient : ITvdbClient /// name /// response /// A server side error occurred. - System.Threading.Tasks.Task> UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> UpdatesAsync(long since, UpdatesType? type = null, UpdatesAction? action = null, long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); } @@ -10380,7 +10380,7 @@ private static System.Text.Json.JsonSerializerOptions CreateSerializerSettings() /// name /// response /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> UpdatesAsync(double since, UpdatesType? type = null, UpdatesAction? action = null, double? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public virtual async System.Threading.Tasks.Task> UpdatesAsync(long since, UpdatesType? type = null, UpdatesAction? action = null, long? page = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (since == null) throw new System.ArgumentNullException("since"); diff --git a/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs b/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs index bd3e288..f0af644 100644 --- a/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs +++ b/src/TvdbClient/Handlers/EnvelopeUnwrappingHandler.cs @@ -1,6 +1,8 @@ using System.Net.Http; using System.Text; using System.Text.Json; +using Tvdb.Models; +using Tvdb.Paging; namespace Tvdb.Handlers; @@ -34,6 +36,15 @@ protected override async Task SendAsync( return response; } + // If a paging wrapper is capturing, surface the pagination metadata it needs. + if (TvdbResponseContext.Current is { } capture) + { + if (document.RootElement.TryGetProperty("links", out var links) && links.ValueKind == JsonValueKind.Object) + capture.Links = links.Deserialize(); + if (document.RootElement.TryGetProperty("status", out var status) && status.ValueKind == JsonValueKind.String) + capture.Status = status.GetString(); + } + var original = response.Content; response.Content = new StringContent(data.GetRawText(), Encoding.UTF8, "application/json"); original.Dispose(); diff --git a/src/TvdbClient/Paging/TvdbPagingExtensions.cs b/src/TvdbClient/Paging/TvdbPagingExtensions.cs new file mode 100644 index 0000000..23ebfd0 --- /dev/null +++ b/src/TvdbClient/Paging/TvdbPagingExtensions.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Tvdb.Abstractions; +using Tvdb.Clients; +using Tvdb.Models; + +namespace Tvdb.Paging; + +/// +/// GetPageAsync overloads for the eight paginated TheTVDB list endpoints. Each calls the +/// generated client (which returns the item collection) inside a +/// capture scope, so the pagination links/status the envelope handler strips are +/// folded back into a . +/// +public static class TvdbPagingExtensions +{ + public static Task> GetPageAsync(this ISeriesClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.SeriesGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this IMoviesClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.MoviesGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this IEpisodesClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.EpisodesGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this IPeopleClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.PeopleGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this IListsClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.ListsGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this ISeasonsClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.SeasonsGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this ICompaniesClient client, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.CompaniesGetAsync(page, cancellationToken)); + + public static Task> GetPageAsync(this IUpdatesClient client, long since, UpdatesType? type = null, UpdatesAction? action = null, long? page = null, CancellationToken cancellationToken = default) + => Paged(() => client.UpdatesAsync(since, type, action, page, cancellationToken)); + + private static async Task> Paged(Func>> call) + { + using var capture = TvdbResponseContext.BeginCapture(); + var items = await call().ConfigureAwait(false); + var list = items is null ? new List() : new List(items); + return new Page(list, capture.Links, capture.Status); + } +} diff --git a/src/TvdbClient/Paging/TvdbResponseContext.cs b/src/TvdbClient/Paging/TvdbResponseContext.cs new file mode 100644 index 0000000..9125d02 --- /dev/null +++ b/src/TvdbClient/Paging/TvdbResponseContext.cs @@ -0,0 +1,40 @@ +using System; +using System.Threading; +using Tvdb.Models; + +namespace Tvdb.Paging; + +/// +/// Ambient, async-flow-local capture of the pagination metadata (links/status) +/// that strips off list responses. +/// +/// A paging wrapper opens a scope before awaiting the generated +/// client, so the (mutable) capture object flows down the async call into the handler; the +/// handler fills it in; the wrapper reads it back after the await. This keeps the generated +/// clients returning plain collections while still surfacing the links as Page<T>. +/// +internal static class TvdbResponseContext +{ + private static readonly AsyncLocal Ambient = new(); + + internal static Capture? Current => Ambient.Value; + + internal static Capture BeginCapture() + { + var capture = new Capture(); + Ambient.Value = capture; + return capture; + } + + internal sealed class Capture : IDisposable + { + public Links? Links { get; set; } + public string? Status { get; set; } + + public void Dispose() + { + if (ReferenceEquals(Ambient.Value, this)) + Ambient.Value = null; + } + } +} diff --git a/tests/TvdbClient.Specs/PagingSpecs.cs b/tests/TvdbClient.Specs/PagingSpecs.cs new file mode 100644 index 0000000..b296699 --- /dev/null +++ b/tests/TvdbClient.Specs/PagingSpecs.cs @@ -0,0 +1,57 @@ +using System; +using System.Net; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using FluentAssertions; +using Tvdb.Clients; +using Tvdb.Handlers; +using Tvdb.Paging; +using Xunit; + +namespace TvdbClient.Specs; + +/// +/// End-to-end for the paginated list path: the envelope handler strips data and captures +/// links/status, the generated client deserializes the items, and +/// GetPageAsync folds them back into a . +/// +public class PagingSpecs +{ + [Fact] + public async Task GetPageAsync_returns_items_plus_pagination_metadata() + { + const string enveloped = + """ + {"data":[{"id":1,"name":"A"},{"id":2,"name":"B"}], + "status":"success", + "links":{"prev":null,"self":"/series?page=0","next":"/series?page=1","total_items":100,"page_size":2}} + """; + + using var http = new HttpClient(new EnvelopeUnwrappingHandler { InnerHandler = new StubHandler(enveloped) }) + { + BaseAddress = new Uri("http://tvdb.test/"), + }; + var series = new SeriesClient(http); + + var page = await series.GetPageAsync(page: 0); + + page.Items.Should().HaveCount(2); + page.Items[0].Name.Should().Be("A"); + page.Status.Should().Be("success"); + page.HasNext.Should().BeTrue(); + page.HasPrevious.Should().BeFalse(); + page.TotalItems.Should().Be(100); + page.PageSize.Should().Be(2); + } + + private sealed class StubHandler(string body) : HttpMessageHandler + { + protected override Task SendAsync(HttpRequestMessage request, CancellationToken ct) + => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent(body, Encoding.UTF8, "application/json"), + }); + } +} diff --git a/tests/TvdbClient.Specs/SeriesClientSpecs.cs b/tests/TvdbClient.Specs/SeriesClientSpecs.cs new file mode 100644 index 0000000..2f76f6a --- /dev/null +++ b/tests/TvdbClient.Specs/SeriesClientSpecs.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using FluentAssertions; +using Mockly; +using Tvdb.Clients; +using Xunit; + +namespace TvdbClient.Specs; + +/// +/// The generated clients deserialize the (already-unwrapped) body directly into the DTO. +/// Uses Mockly to stand in for TheTVDB's HTTP endpoint. +/// +public class SeriesClientSpecs +{ + [Fact] + public async Task Deserializes_a_series_record_from_the_response_body() + { + var mock = new HttpMock(); + mock.ForGet() + .WithPath("/series/121361") + .RespondsWithJsonContent(new { id = 121361, name = "Doctor Who" }); + + var series = new SeriesClient(mock.GetClient()); + + var record = await series.SeriesGetAsync(121361); + + record.Id.Should().Be(121361); + record.Name.Should().Be("Doctor Who"); + } +} From a024629f1360e70482368e2fbe27a824e82bf1c5 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 00:48:51 +1200 Subject: [PATCH 3/7] ci(publish): GitHub Packages + GitHub Release with packages & categorized notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The publish lane now, on a version tag: - pushes to nuget.org (OIDC, as before), - pushes to GitHub Packages (GITHUB_TOKEN), - creates a GitHub Release with the .nupkg files attached and auto-generated, label-categorized notes (softprops/action-gh-release + .github/release.yml mapping PR labels → Features / Fixes / Docs / Maintenance / Other). Adds contents:write + packages:write to the job. Static version fallback → 4.7.12. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/release.yml | 19 ++++++++++++++++++ .github/workflows/publish.yml | 37 ++++++++++++++++++++++++++--------- Directory.Build.props | 8 ++++---- 3 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 .github/release.yml diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..7e4edfa --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,19 @@ +# Categorises the auto-generated GitHub Release notes by PR label +# (used by `generate_release_notes` in publish.yml). +changelog: + exclude: + labels: + - duplicate + - invalid + - wontfix + categories: + - title: ✨ Features & Enhancements + labels: [enhancement, feature] + - title: 🐛 Fixes + labels: [bug, fix] + - title: 📝 Documentation + labels: [documentation] + - title: 🔧 Maintenance & CI + labels: [chore, ci, cleanup, dependencies, iac] + - title: Other Changes + labels: ["*"] diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 469eaff..218162d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,11 +1,15 @@ -# Publish to NuGet.org via Trusted Publishing (OIDC) — no stored API key. +# Publish on a version tag: +# 1. NuGet.org via Trusted Publishing (OIDC) — no stored API key. +# 2. GitHub Packages (uses the built-in GITHUB_TOKEN). +# 3. A GitHub Release with the .nupkg files attached and auto-generated, +# label-categorized release notes (see .github/release.yml). # -# Requires a one-time Trusted Publisher policy on nuget.org for each package +# One-time nuget.org setup: a Trusted Publisher policy for each package # (TvdbClient, TvdbClient.Models, TvdbClient.Abstractions): owner Chrison-dev, -# repo TvdbApi, workflow publish.yml, environment nuget.org. Set the repo variable -# NUGET_USER to your nuget.org username. +# repo TvdbApi, workflow publish.yml, environment nuget.org. Repo variable +# NUGET_USER = your nuget.org username. # -# Triggered by pushing a version tag, e.g. `git tag v4.7.11 && git push origin v4.7.11`. +# Triggered by pushing a version tag, e.g. `git tag v4.7.12 && git push origin v4.7.12`. name: publish on: @@ -14,8 +18,9 @@ on: workflow_dispatch: permissions: - id-token: write # required for OIDC trusted publishing - contents: read + id-token: write # OIDC trusted publishing (nuget.org) + contents: write # create the GitHub Release + packages: write # push to GitHub Packages jobs: publish: @@ -36,15 +41,29 @@ jobs: - name: 'Pack' run: dotnet run --project build/_build.csproj -- Pack - - name: 'NuGet: trusted-publishing login (OIDC → short-lived key)' + - name: 'NuGet.org: trusted-publishing login (OIDC → short-lived key)' uses: NuGet/login@v1 id: login with: user: ${{ vars.NUGET_USER }} - - name: 'NuGet: push' + - name: 'NuGet.org: push' run: > dotnet nuget push "artifacts/packages/*.nupkg" --source https://api.nuget.org/v3/index.json --api-key ${{ steps.login.outputs.NUGET_API_KEY }} --skip-duplicate + + - name: 'GitHub Packages: push' + run: > + dotnet nuget push "artifacts/packages/*.nupkg" + --source https://nuget.pkg.github.com/Chrison-dev/index.json + --api-key ${{ secrets.GITHUB_TOKEN }} + --skip-duplicate + + - name: 'GitHub Release: create with packages + generated notes' + if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v2 + with: + files: artifacts/packages/*.nupkg + generate_release_notes: true diff --git a/Directory.Build.props b/Directory.Build.props index 2e9f1c7..3dc33a5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -14,10 +14,10 @@ true - 4.7.11 - 4.7.11.0 - 4.7.11.0 - 4.7.11 + 4.7.12 + 4.7.12.0 + 4.7.12.0 + 4.7.12 $(GitVersion_FullSemVer) $(GitVersion_AssemblySemVer) From 2aa5e82451856c01a0bc193f9e522d06b0a630eb Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 00:54:01 +1200 Subject: [PATCH 4/7] docs: add project CLAUDE.md (Fallout owns workflows; conventions) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bakes in the key conventions so they aren't forgotten — most importantly: GitHub workflows are GENERATED by Fallout from [GitHubActions] attributes on build/Build.cs and must never be hand-edited. Also: in-stack tooling only, generated codegen (don't hand-edit), the 3-project architecture + arch tests, the Fallout spec test convention (no CPM), versioning, and publishing. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..bc35810 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,51 @@ +# CLAUDE.md — TvdbApi + +C# client for **TheTVDB v4 API**, published as three NuGet packages. Read this before changing build, CI, codegen, or the public surface. + +## ⚠️ CI/CD: Fallout owns the workflows — NEVER hand-edit `.github/workflows/*.yml` + +This repo builds with **[Fallout](https://github.com/Fallout-build/Fallout)** (a NUKE fork). **All GitHub Actions workflows are GENERATED** from `[GitHubActions(...)]` attributes on `build/Build.cs`. + +- **Do not edit `.github/workflows/*.yml` by hand.** They are generated artifacts. +- To change CI/publishing: edit the `[GitHubActions]` attribute(s) + build targets in `build/Build.cs` (use `IConfigureGitHubActions` / custom steps for things Fallout doesn't model natively, e.g. OIDC publish, GitHub Release), then **regenerate**: + ```sh + ./build.ps1 # regenerates workflows as part of a build + # or explicitly: + dotnet run --project build/_build.csproj -- --generate-configuration GitHubActions_ --host GitHubActions + ``` +- Same rule for `.github/release.yml` if it can be driven from the build; otherwise treat generated files as generated. + +## Build & tooling + +- Run the build via `./build.ps1 ` (bootstraps `dotnet run --project build/_build.csproj`). Targets: `Generate`, `Test`, `Pack`. +- **In-stack tooling only**: Fallout targets (C#) or PowerShell. **No Python/Bash** scripts for repo tooling. + +## Codegen — don't hand-edit generated code + +- Clients + models are generated from TheTVDB's OpenAPI spec via the Fallout **`Generate`** target (NSwag's C# API, in `build/Build.cs`). Run `./build.ps1 Generate`. +- The overlay (in `Build.cs`) fixes spec quirks in-memory: coerce integer params `number`→`long`, hoist inline param enums, and **strip the `{ data, status, links }` envelope** from responses. +- `src/TvdbClient.Models/TvdbModels.cs` and `src/TvdbClient/Clients/TvdbClient.cs` are **generated** — never hand-edit; change the overlay/settings and regenerate. + +## Architecture — 3 projects (enforced by `ArchitectureSpecs`) + +| Project | Namespace | Role | Versioning | +|---|---|---|---| +| `TvdbClient.Models` | `Tvdb.Models` | generated DTOs (the leaf) | tracks TheTVDB API version | +| `TvdbClient.Abstractions` | `Tvdb.Abstractions` | generic contracts/config/envelope (`Page`) | generic | +| `TvdbClient` | `Tvdb.Clients` / `Tvdb.Paging` / … | generated clients + auth/DI/facade | generic | + +`Models` must depend on nothing else; `Abstractions` must not depend on the core. `NetArchTest` specs enforce this — keep them green. + +**Response shape:** clients return the entity `T` (single) / `ICollection` (list); the `{data}` envelope is peeled at runtime by `EnvelopeUnwrappingHandler`. Paginated endpoints expose `Page` via `GetPageAsync` extensions. + +## Testing — Fallout spec convention + +- **xUnit + FluentAssertions + Verify + NetArchTest + Mockly** (HTTP mocking). Public-API stability via **PublicApiGenerator + Verify** snapshots. +- Test packages are injected for `*.Specs` projects via `tests/Directory.Build.props`. **No Central Package Management** (per-project versions) — deliberate. +- One `Specs` per class; snake_case behavioural test names. + +## Versioning & publishing + +- **GitVersion**: `Major.Minor` = TheTVDB API version, **patch = our release counter**. Cut a release by tagging `v..` (e.g. `v4.7.12`). +- Publish (on tag, via the generated publish workflow): **NuGet.org Trusted Publishing (OIDC)** + **GitHub Packages** + a **GitHub Release** with the `.nupkg` files attached and label-categorized notes. +- Shared external accounts (nuget.org, GitHub org): add-only; don't disturb existing packages/policies. From d9d4bfb289954c2dcc1f94c0ae852a06d54f3573 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 01:07:56 +1200 Subject: [PATCH 5/7] ci: build workflow is Fallout-generated (cross-platform), not hand-edited MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per the CLAUDE.md rule (Fallout owns the workflows). Fixes: - Pin Fallout.GlobalTool 10.3.49 (nuget.org) and align Fallout.Common/Components to 10.3.49 (they were 11.0.18, mismatched with the tool). - Make build.cmd the proper bat/sh polyglot (dispatches to build.sh on Linux, build.ps1 on Windows) + add build.sh, so the tool's generated `./build.cmd` run step runs on the ubuntu runner. Verified locally: `./build.cmd Test`. - Flip the build [GitHubActions] attribute back to AutoGenerate (drop the earlier hand-edit) and regenerate build.yml → `./build.cmd Test Pack`. - Tools roll forward (net10 CI). Co-Authored-By: Claude Opus 4.8 (1M context) --- .config/dotnet-tools.json | 9 ++++++++- .github/workflows/build.yml | 18 +----------------- build.cmd | 8 +++++--- build.sh | 3 +++ build/Build.cs | 8 +++----- build/_build.csproj | 4 ++-- 6 files changed, 22 insertions(+), 28 deletions(-) mode change 100644 => 100755 build.cmd create mode 100755 build.sh diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 206303f..fb36ceb 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -7,7 +7,14 @@ "commands": [ "dotnet-gitversion" ], - "rollForward": false + "rollForward": true + }, + "fallout.globaltool": { + "version": "10.3.49", + "commands": [ + "fallout" + ], + "rollForward": true } } } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 066047d..c0bb2af 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,21 +39,5 @@ jobs: .fallout/temp ~/.nuget/packages key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj', '**/Directory.Packages.props') }} - - name: 'Setup: .NET SDK' - uses: actions/setup-dotnet@v4 - with: - global-json-file: global.json - - name: 'Restore: dotnet tools' - run: dotnet tool restore - name: 'Run: Test, Pack' - run: dotnet run --project build/_build.csproj -- Test Pack - - name: 'Publish: test-results' - uses: actions/upload-artifact@v5 - with: - name: test-results - path: artifacts/test-results - - name: 'Publish: packages' - uses: actions/upload-artifact@v5 - with: - name: packages - path: artifacts/packages + run: ./build.cmd Test Pack diff --git a/build.cmd b/build.cmd old mode 100644 new mode 100755 index 93f8100..61a428a --- a/build.cmd +++ b/build.cmd @@ -1,4 +1,6 @@ +:; set -eo pipefail +:; SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd) +:; exec "$SCRIPT_DIR/build.sh" "$@" + @echo off -:: Fallout build bootstrapper (Windows). Runs the build project directly. -:: build.cmd Generate -dotnet run --project "%~dp0build\_build.csproj" -- %* +powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..2c9a9b9 --- /dev/null +++ b/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -eo pipefail +dotnet run --project "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/build/_build.csproj" -- "$@" diff --git a/build/Build.cs b/build/Build.cs index a0ffb4a..48ccc6a 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -22,14 +22,12 @@ /// CI — run it locally via ./build.ps1 Generate. Publishing to NuGet uses /// trusted publishing (OIDC) via a dedicated workflow (Fallout has no built-in OIDC). /// -// AutoGenerate=false: the workflow was generated from this attribute, but its run -// step is bootstrapped via `dotnet run --project build/_build.csproj` instead of the -// `fallout` global tool (Fallout.GlobalTools isn't on nuget.org). The attribute stays -// as the source-of-truth description of the build lane. +// CI build lane — the workflow is GENERATED from this attribute (see CLAUDE.md: +// never hand-edit .github/workflows/*.yml). Regenerate with: +// dotnet fallout --generate-configuration GitHubActions_build --host GitHubActions [GitHubActions( "build", GitHubActionsImage.UbuntuLatest, - AutoGenerate = false, FetchDepth = 0, OnPushBranches = new[] { "main" }, OnPullRequestBranches = new[] { "main" }, diff --git a/build/_build.csproj b/build/_build.csproj index bd11b8e..df42379 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -13,8 +13,8 @@ - - + + From 83d89f4e35bd7ecdd06b97fd41494a8675b0c0c1 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 01:15:44 +1200 Subject: [PATCH 6/7] test(api): public API snapshot specs + document the publish-workflow exception MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PublicApiSpecs (PublicApiGenerator + Verify) snapshots the public surface of all three packages; committed .verified.txt baselines. Any accidental surface change now fails until re-accepted. Chosen over Roslyn PublicApiAnalyzers to reuse the Verify already in the Fallout test stack. 12 specs pass. - CLAUDE.md: document that publish.yml is the one hand-written workflow (the published Fallout tool 10.3.49 lacks the 11.x custom-step API to model the uses:-based OIDC/Release steps — as Fallout's own repo also hand-writes publish). Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 5 +- tests/Directory.Build.props | 1 + ...lient_Abstractions_public_api.verified.txt | 78 + ....TvdbClient_Models_public_api.verified.txt | 1715 +++++++++++++++++ ...piSpecs.TvdbClient_public_api.verified.txt | 658 +++++++ tests/TvdbClient.Specs/PublicApiSpecs.cs | 26 + 6 files changed, 2481 insertions(+), 2 deletions(-) create mode 100644 tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Abstractions_public_api.verified.txt create mode 100644 tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Models_public_api.verified.txt create mode 100644 tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_public_api.verified.txt create mode 100644 tests/TvdbClient.Specs/PublicApiSpecs.cs diff --git a/CLAUDE.md b/CLAUDE.md index bc35810..9dd05d7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,8 +6,9 @@ C# client for **TheTVDB v4 API**, published as three NuGet packages. Read this b This repo builds with **[Fallout](https://github.com/Fallout-build/Fallout)** (a NUKE fork). **All GitHub Actions workflows are GENERATED** from `[GitHubActions(...)]` attributes on `build/Build.cs`. -- **Do not edit `.github/workflows/*.yml` by hand.** They are generated artifacts. -- To change CI/publishing: edit the `[GitHubActions]` attribute(s) + build targets in `build/Build.cs` (use `IConfigureGitHubActions` / custom steps for things Fallout doesn't model natively, e.g. OIDC publish, GitHub Release), then **regenerate**: +- **Do not edit generated `.github/workflows/*.yml` by hand.** `build.yml` is generated from the `[GitHubActions]` attribute on `build/Build.cs`. +- **One documented exception: `publish.yml` is hand-written.** The publish lane's OIDC login + GitHub Release are `uses:` actions that only Fallout's 11.x `IConfigureGitHubActions` custom-step API can model — and the **published** `Fallout.GlobalTool` (10.3.49) doesn't have it. So `publish.yml` is maintained by hand (exactly as Fallout's *own* repo keeps a hand-written publish workflow). If a Fallout 11.x tool is ever published, move publishing into `[GitHubActions("publish")]` + `IConfigureGitHubActions` and regenerate. +- To change the build/CI lane: edit the `[GitHubActions]` attribute + targets in `build/Build.cs`, then **regenerate**: ```sh ./build.ps1 # regenerates workflows as part of a build # or explicitly: diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index 0e08fee..fa46fdb 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -16,6 +16,7 @@ + diff --git a/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Abstractions_public_api.verified.txt b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Abstractions_public_api.verified.txt new file mode 100644 index 0000000..bfe4910 --- /dev/null +++ b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Abstractions_public_api.verified.txt @@ -0,0 +1,78 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/Chrison-dev/TvdbApi.git")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace Tvdb.Abstractions +{ + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public abstract class AbstractBaseRecord + { + protected AbstractBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + } + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public class ApiResponseWrapper + where TDataType : class + { + public ApiResponseWrapper() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("data")] + public TDataType Data { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("message")] + public string? ErrorMessage { get; set; } + [System.Text.Json.Serialization.JsonIgnore] + public bool IsSuccess { get; } + [System.Text.Json.Serialization.JsonPropertyName("links")] + public Tvdb.Models.Links Links { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } + } + public interface ITokenProvider + { + Tvdb.Abstractions.Token Token { get; } + System.Threading.Tasks.Task AcquireTokenAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ITvdbClient { } + public class LoginRequestBody : Tvdb.Abstractions.AbstractBaseRecord + { + public LoginRequestBody() { } + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings=true)] + [System.Text.Json.Serialization.JsonPropertyName("apikey")] + public string Apikey { get; set; } + [System.Text.Json.Serialization.JsonIgnore(Condition=System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull)] + [System.Text.Json.Serialization.JsonPropertyName("pin")] + public string? Pin { get; set; } + } + public sealed class Page + { + public Page(System.Collections.Generic.IReadOnlyList items, Tvdb.Models.Links? links, string? status) { } + public bool HasNext { get; } + public bool HasPrevious { get; } + public System.Collections.Generic.IReadOnlyList Items { get; } + public Tvdb.Models.Links? Links { get; } + public int? PageSize { get; } + public string? Status { get; } + public int? TotalItems { get; } + } + [System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage] + public class Token + { + public Token() { } + [System.Text.Json.Serialization.JsonPropertyName("token")] + public string AccessToken { get; set; } + public System.DateTime CreationTimestamp { get; } + [System.Text.Json.Serialization.JsonIgnore] + public bool IsTokenExpired { get; } + [System.Text.Json.Serialization.JsonIgnore] + public System.DateTime TokenExpiryDate { get; } + public static string TokenType { get; } + } + public class TvdbConfiguration + { + public TvdbConfiguration() { } + public virtual string ApiKey { get; set; } + public virtual string BaseUrl { get; set; } + public virtual string? Pin { get; set; } + public string TokenUrl { get; } + } +} \ No newline at end of file diff --git a/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Models_public_api.verified.txt b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Models_public_api.verified.txt new file mode 100644 index 0000000..2aa7ebd --- /dev/null +++ b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_Models_public_api.verified.txt @@ -0,0 +1,1715 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/Chrison-dev/TvdbApi.git")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace Tvdb.Models +{ + public class Alias + { + public Alias() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class ArtworkBaseRecord + { + public ArtworkBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("height")] + public long? Height { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("includesText")] + public bool? IncludesText { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbnail")] + public string Thumbnail { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public long? Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("width")] + public long? Width { get; set; } + } + public class ArtworkExtendedRecord + { + public ArtworkExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodeId")] + public int? EpisodeId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("height")] + public long? Height { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("includesText")] + public bool? IncludesText { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movieId")] + public int? MovieId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("networkId")] + public int? NetworkId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("peopleId")] + public int? PeopleId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasonId")] + public int? SeasonId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public int? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesPeopleId")] + public int? SeriesPeopleId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public Tvdb.Models.ArtworkStatus Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbnail")] + public string Thumbnail { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbnailHeight")] + public long? ThumbnailHeight { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbnailWidth")] + public long? ThumbnailWidth { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public long? Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("updatedAt")] + public long? UpdatedAt { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("width")] + public long? Width { get; set; } + } + public class ArtworkStatus + { + public ArtworkStatus() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class ArtworkType + { + public ArtworkType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("height")] + public long? Height { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageFormat")] + public string ImageFormat { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("recordType")] + public string RecordType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbHeight")] + public long? ThumbHeight { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbWidth")] + public long? ThumbWidth { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("width")] + public long? Width { get; set; } + } + public class AwardBaseRecord + { + public AwardBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class AwardCategoryBaseRecord + { + public AwardCategoryBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("allowCoNominees")] + public bool? AllowCoNominees { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("award")] + public Tvdb.Models.AwardBaseRecord Award { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("forMovies")] + public bool? ForMovies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("forSeries")] + public bool? ForSeries { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class AwardCategoryExtendedRecord + { + public AwardCategoryExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("allowCoNominees")] + public bool? AllowCoNominees { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("award")] + public Tvdb.Models.AwardBaseRecord Award { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("forMovies")] + public bool? ForMovies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("forSeries")] + public bool? ForSeries { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nominees")] + public System.Collections.Generic.ICollection Nominees { get; set; } + } + public class AwardExtendedRecord + { + public AwardExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("categories")] + public System.Collections.Generic.ICollection Categories { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public long? Score { get; set; } + } + public class AwardNomineeBaseRecord + { + public AwardNomineeBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("category")] + public string Category { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("character")] + public Tvdb.Models.Character Character { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("details")] + public string Details { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episode")] + public Tvdb.Models.EpisodeBaseRecord Episode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isWinner")] + public bool? IsWinner { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movie")] + public Tvdb.Models.MovieBaseRecord Movie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public Tvdb.Models.SeriesBaseRecord Series { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class Biography + { + public Biography() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("biography")] + public string Biography1 { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + } + public class Body + { + public Body() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings=true)] + [System.Text.Json.Serialization.JsonPropertyName("apikey")] + public string Apikey { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("pin")] + public string Pin { get; set; } + } + public class Character + { + public Character() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episode")] + public Tvdb.Models.RecordInfo Episode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodeId")] + public int? EpisodeId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isFeatured")] + public bool? IsFeatured { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movie")] + public Tvdb.Models.RecordInfo Movie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movieId")] + public int? MovieId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("peopleId")] + public int? PeopleId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("peopleType")] + public string PeopleType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("personImgURL")] + public string PersonImgURL { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("personName")] + public string PersonName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public Tvdb.Models.RecordInfo Series { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public int? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("sort")] + public long? Sort { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public long? Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class Companies + { + public Companies() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("distributor")] + public System.Collections.Generic.ICollection Distributor { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("network")] + public System.Collections.Generic.ICollection Network { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("production")] + public System.Collections.Generic.ICollection Production { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("special_effects")] + public System.Collections.Generic.ICollection Special_effects { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("studio")] + public System.Collections.Generic.ICollection Studio { get; set; } + } + public class Company + { + public Company() { } + [System.Text.Json.Serialization.JsonPropertyName("activeDate")] + public string ActiveDate { get; set; } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("inactiveDate")] + public string InactiveDate { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("parentCompany")] + public Tvdb.Models.ParentCompany ParentCompany { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("primaryCompanyType")] + public long? PrimaryCompanyType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + } + public class CompanyRelationShip + { + public CompanyRelationShip() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("typeName")] + public string TypeName { get; set; } + } + public class CompanyType + { + public CompanyType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companyTypeId")] + public int? CompanyTypeId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companyTypeName")] + public string CompanyTypeName { get; set; } + } + public class ContentRating + { + public ContentRating() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("contentType")] + public string ContentType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("fullName")] + public string FullName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("order")] + public int? Order { get; set; } + } + public class Country + { + public Country() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("shortCode")] + public string ShortCode { get; set; } + } + public class Entity + { + public Entity() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movieId")] + public int? MovieId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("order")] + public long? Order { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public int? SeriesId { get; set; } + } + public class EntityType + { + public EntityType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("hasSpecials")] + public bool? HasSpecials { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class EntityUpdate + { + public EntityUpdate() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("entityType")] + public string EntityType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("extraInfo")] + public string ExtraInfo { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("mergeToEntityType")] + public string MergeToEntityType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("mergeToId")] + public long? MergeToId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("method")] + public string Method { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("methodInt")] + public int? MethodInt { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("recordId")] + public long? RecordId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("recordType")] + public string RecordType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public long? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("timeStamp")] + public long? TimeStamp { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("userId")] + public int? UserId { get; set; } + } + public class EpisodeBaseRecord + { + public EpisodeBaseRecord() { } + [System.Text.Json.Serialization.JsonPropertyName("absoluteNumber")] + public int? AbsoluteNumber { get; set; } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aired")] + public string Aired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsAfterSeason")] + public int? AirsAfterSeason { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsBeforeEpisode")] + public int? AirsBeforeEpisode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsBeforeSeason")] + public int? AirsBeforeSeason { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("finaleType")] + public string FinaleType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageType")] + public int? ImageType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isMovie")] + public long? IsMovie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("linkedMovie")] + public int? LinkedMovie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("number")] + public int? Number { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public int? Runtime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasonName")] + public string SeasonName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasonNumber")] + public int? SeasonNumber { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasons")] + public System.Collections.Generic.ICollection Seasons { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public long? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class EpisodeExtendedRecord + { + public EpisodeExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aired")] + public string Aired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsAfterSeason")] + public int? AirsAfterSeason { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsBeforeEpisode")] + public int? AirsBeforeEpisode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsBeforeSeason")] + public int? AirsBeforeSeason { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("awards")] + public System.Collections.Generic.ICollection Awards { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("characters")] + public System.Collections.Generic.ICollection Characters { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public System.Collections.Generic.ICollection Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("contentRatings")] + public System.Collections.Generic.ICollection ContentRatings { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("finaleType")] + public string FinaleType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageType")] + public int? ImageType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isMovie")] + public long? IsMovie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("linkedMovie")] + public int? LinkedMovie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("networks")] + public System.Collections.Generic.ICollection Networks { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nominations")] + public System.Collections.Generic.ICollection Nominations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("number")] + public int? Number { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("productionCode")] + public string ProductionCode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remoteIds")] + public System.Collections.Generic.ICollection RemoteIds { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public int? Runtime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasonNumber")] + public int? SeasonNumber { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasons")] + public System.Collections.Generic.ICollection Seasons { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public long? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("studios")] + public System.Collections.Generic.ICollection Studios { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("trailers")] + public System.Collections.Generic.ICollection Trailers { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public Tvdb.Models.TranslationExtended Translations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class FavoriteRecord + { + public FavoriteRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("artwork")] + public int? Artwork { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episode")] + public int? Episode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("list")] + public int? List { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movie")] + public int? Movie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("people")] + public int? People { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public int? Series { get; set; } + } + public class Favorites + { + public Favorites() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("artwork")] + public System.Collections.Generic.ICollection Artwork { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodes")] + public System.Collections.Generic.ICollection Episodes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lists")] + public System.Collections.Generic.ICollection Lists { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movies")] + public System.Collections.Generic.ICollection Movies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("people")] + public System.Collections.Generic.ICollection People { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public System.Collections.Generic.ICollection Series { get; set; } + } + public class Gender + { + public Gender() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class GenreBaseRecord + { + public GenreBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + } + public enum GetEpisodeExtendedMeta + { + [System.Runtime.Serialization.EnumMember(Value="translations")] + Translations = 0, + } + public enum GetMovieExtendedMeta + { + [System.Runtime.Serialization.EnumMember(Value="translations")] + Translations = 0, + } + public enum GetMovieExtendedShort + { + [System.Runtime.Serialization.EnumMember(Value="true")] + True = 0, + [System.Runtime.Serialization.EnumMember(Value="false")] + False = 1, + } + public enum GetMoviesFilterGenre : long + { + _1 = 1, + _2 = 2, + _3 = 3, + _4 = 4, + _5 = 5, + _6 = 6, + _7 = 7, + _8 = 8, + _9 = 9, + _10 = 10, + _11 = 11, + _12 = 12, + _13 = 13, + _14 = 14, + _15 = 15, + _16 = 16, + _17 = 17, + _18 = 18, + _19 = 19, + _21 = 21, + _22 = 22, + _23 = 23, + _24 = 24, + _25 = 25, + _26 = 26, + _27 = 27, + _28 = 28, + _29 = 29, + _30 = 30, + _31 = 31, + _32 = 32, + _33 = 33, + _34 = 34, + _35 = 35, + _36 = 36, + } + public enum GetMoviesFilterSort + { + [System.Runtime.Serialization.EnumMember(Value="score")] + Score = 0, + [System.Runtime.Serialization.EnumMember(Value="firstAired")] + FirstAired = 1, + [System.Runtime.Serialization.EnumMember(Value="name")] + Name = 2, + } + public enum GetMoviesFilterStatus : long + { + _1 = 1, + _2 = 2, + _3 = 3, + } + public enum GetPeopleExtendedMeta + { + [System.Runtime.Serialization.EnumMember(Value="translations")] + Translations = 0, + } + public enum GetSeriesExtendedMeta + { + [System.Runtime.Serialization.EnumMember(Value="translations")] + Translations = 0, + [System.Runtime.Serialization.EnumMember(Value="episodes")] + Episodes = 1, + } + public enum GetSeriesExtendedShort + { + [System.Runtime.Serialization.EnumMember(Value="true")] + True = 0, + [System.Runtime.Serialization.EnumMember(Value="false")] + False = 1, + } + public enum GetSeriesFilterGenre : long + { + _1 = 1, + _2 = 2, + _3 = 3, + _4 = 4, + _5 = 5, + _6 = 6, + _7 = 7, + _8 = 8, + _9 = 9, + _10 = 10, + _11 = 11, + _12 = 12, + _13 = 13, + _14 = 14, + _15 = 15, + _16 = 16, + _17 = 17, + _18 = 18, + _19 = 19, + _21 = 21, + _22 = 22, + _23 = 23, + _24 = 24, + _25 = 25, + _26 = 26, + _27 = 27, + _28 = 28, + _29 = 29, + _30 = 30, + _31 = 31, + _32 = 32, + _33 = 33, + _34 = 34, + _35 = 35, + _36 = 36, + } + public enum GetSeriesFilterSort + { + [System.Runtime.Serialization.EnumMember(Value="score")] + Score = 0, + [System.Runtime.Serialization.EnumMember(Value="firstAired")] + FirstAired = 1, + [System.Runtime.Serialization.EnumMember(Value="lastAired")] + LastAired = 2, + [System.Runtime.Serialization.EnumMember(Value="name")] + Name = 3, + } + public enum GetSeriesFilterSortType + { + [System.Runtime.Serialization.EnumMember(Value="asc")] + Asc = 0, + [System.Runtime.Serialization.EnumMember(Value="desc")] + Desc = 1, + } + public enum GetSeriesFilterStatus : long + { + _1 = 1, + _2 = 2, + _3 = 3, + } + public class Inspiration + { + public Inspiration() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type_name")] + public string Type_name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class InspirationType + { + public InspirationType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("reference_name")] + public string Reference_name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class Language + { + public Language() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nativeName")] + public string NativeName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("shortCode")] + public string ShortCode { get; set; } + } + public class Links + { + public Links() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("next")] + public string Next { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int? Page_size { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("prev")] + public string Prev { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("self")] + public string Self { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("total_items")] + public int? Total_items { get; set; } + } + public class ListBaseRecord + { + public ListBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageIsFallback")] + public bool? ImageIsFallback { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isOfficial")] + public bool? IsOfficial { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remoteIds")] + public System.Collections.Generic.ICollection RemoteIds { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public int? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tags")] + public System.Collections.Generic.ICollection Tags { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class ListExtendedRecord + { + public ListExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("entities")] + public System.Collections.Generic.ICollection Entities { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageIsFallback")] + public bool? ImageIsFallback { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isOfficial")] + public bool? IsOfficial { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public long? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class MovieBaseRecord + { + public MovieBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public int? Runtime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public Tvdb.Models.Status Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class MovieExtendedRecord + { + public MovieExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("artworks")] + public System.Collections.Generic.ICollection Artworks { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("audioLanguages")] + public System.Collections.Generic.ICollection AudioLanguages { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("awards")] + public System.Collections.Generic.ICollection Awards { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("boxOffice")] + public string BoxOffice { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("boxOfficeUS")] + public string BoxOfficeUS { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("budget")] + public string Budget { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("characters")] + public System.Collections.Generic.ICollection Characters { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public Tvdb.Models.Companies Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("contentRatings")] + public System.Collections.Generic.ICollection ContentRatings { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("first_release")] + public Tvdb.Models.Release First_release { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("genres")] + public System.Collections.Generic.ICollection Genres { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("inspirations")] + public System.Collections.Generic.ICollection Inspirations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lists")] + public System.Collections.Generic.ICollection Lists { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalCountry")] + public string OriginalCountry { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalLanguage")] + public string OriginalLanguage { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("production_countries")] + public System.Collections.Generic.ICollection Production_countries { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("releases")] + public System.Collections.Generic.ICollection Releases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remoteIds")] + public System.Collections.Generic.ICollection RemoteIds { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public int? Runtime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("spoken_languages")] + public System.Collections.Generic.ICollection Spoken_languages { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public Tvdb.Models.Status Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("studios")] + public System.Collections.Generic.ICollection Studios { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("subtitleLanguages")] + public System.Collections.Generic.ICollection SubtitleLanguages { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("trailers")] + public System.Collections.Generic.ICollection Trailers { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public Tvdb.Models.TranslationExtended Translations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class ParentCompany + { + public ParentCompany() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("relation")] + public Tvdb.Models.CompanyRelationShip Relation { get; set; } + } + public class PeopleBaseRecord + { + public PeopleBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public long? Score { get; set; } + } + public class PeopleExtendedRecord + { + public PeopleExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("awards")] + public System.Collections.Generic.ICollection Awards { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("biographies")] + public System.Collections.Generic.ICollection Biographies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("birth")] + public string Birth { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("birthPlace")] + public string BirthPlace { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("characters")] + public System.Collections.Generic.ICollection Characters { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("death")] + public string Death { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("gender")] + public int? Gender { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("races")] + public System.Collections.Generic.ICollection Races { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remoteIds")] + public System.Collections.Generic.ICollection RemoteIds { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public long? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public Tvdb.Models.TranslationExtended Translations { get; set; } + } + public class PeopleType + { + public PeopleType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class ProductionCountry + { + public ProductionCountry() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + } + public class Race + { + public Race() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + } + public class RecordInfo + { + public RecordInfo() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class Release + { + public Release() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("date")] + public string Date { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("detail")] + public string Detail { get; set; } + } + public class RemoteID + { + public RemoteID() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("sourceName")] + public string SourceName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public long? Type { get; set; } + } + public class Response + { + public Response() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("token")] + public string Token { get; set; } + } + public class Response2 + { + public Response2() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodes")] + public System.Collections.Generic.ICollection Episodes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public Tvdb.Models.SeriesBaseRecord Series { get; set; } + } + public class Response3 + { + public Response3() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public Tvdb.Models.SeriesBaseRecord Series { get; set; } + } + public class SearchByRemoteIdResult + { + public SearchByRemoteIdResult() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("company")] + public Tvdb.Models.Company Company { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episode")] + public Tvdb.Models.EpisodeBaseRecord Episode { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("movie")] + public Tvdb.Models.MovieBaseRecord Movie { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("people")] + public Tvdb.Models.PeopleBaseRecord People { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("series")] + public Tvdb.Models.SeriesBaseRecord Series { get; set; } + } + public class SearchResult + { + public SearchResult() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public System.Collections.Generic.ICollection Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companyType")] + public string CompanyType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("director")] + public string Director { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("first_air_time")] + public string First_air_time { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("genres")] + public System.Collections.Generic.ICollection Genres { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image_url")] + public string Image_url { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("is_official")] + public bool? Is_official { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name_translated")] + public string Name_translated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("network")] + public string Network { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("objectID")] + public string ObjectID { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("officialList")] + public string OfficialList { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview_translated")] + public System.Collections.Generic.ICollection Overview_translated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviews")] + public Tvdb.Models.TranslationSimple Overviews { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("poster")] + public string Poster { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("posters")] + public System.Collections.Generic.ICollection Posters { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("primary_language")] + public string Primary_language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remote_ids")] + public System.Collections.Generic.ICollection Remote_ids { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("studios")] + public System.Collections.Generic.ICollection Studios { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thumbnail")] + public string Thumbnail { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public Tvdb.Models.TranslationSimple Translations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translationsWithLang")] + public System.Collections.Generic.ICollection TranslationsWithLang { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tvdb_id")] + public string Tvdb_id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class SeasonBaseRecord + { + public SeasonBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public Tvdb.Models.Companies Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageType")] + public int? ImageType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("number")] + public long? Number { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public long? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public Tvdb.Models.SeasonType Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class SeasonExtendedRecord + { + public SeasonExtendedRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("artwork")] + public System.Collections.Generic.ICollection Artwork { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public Tvdb.Models.Companies Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodes")] + public System.Collections.Generic.ICollection Episodes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("imageType")] + public int? ImageType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("number")] + public long? Number { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seriesId")] + public long? SeriesId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagOptions")] + public System.Collections.Generic.ICollection TagOptions { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("trailers")] + public System.Collections.Generic.ICollection Trailers { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public System.Collections.Generic.ICollection Translations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public Tvdb.Models.SeasonType Type { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class SeasonType + { + public SeasonType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("alternateName")] + public string AlternateName { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } + } + public class SeriesAirsDays + { + public SeriesAirsDays() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("friday")] + public bool? Friday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("monday")] + public bool? Monday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("saturday")] + public bool? Saturday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("sunday")] + public bool? Sunday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("thursday")] + public bool? Thursday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tuesday")] + public bool? Tuesday { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("wednesday")] + public bool? Wednesday { get; set; } + } + public class SeriesBaseRecord + { + public SeriesBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("averageRuntime")] + public int? AverageRuntime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("defaultSeasonType")] + public long? DefaultSeasonType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodes")] + public System.Collections.Generic.ICollection Episodes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("firstAired")] + public string FirstAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isOrderRandomized")] + public bool? IsOrderRandomized { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastAired")] + public string LastAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nextAired")] + public string NextAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalCountry")] + public string OriginalCountry { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalLanguage")] + public string OriginalLanguage { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public Tvdb.Models.Status Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class SeriesExtendedRecord + { + public SeriesExtendedRecord() { } + [System.Text.Json.Serialization.JsonPropertyName("abbreviation")] + public string Abbreviation { get; set; } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsDays")] + public Tvdb.Models.SeriesAirsDays AirsDays { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("airsTime")] + public string AirsTime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("artworks")] + public System.Collections.Generic.ICollection Artworks { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("averageRuntime")] + public int? AverageRuntime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("characters")] + public System.Collections.Generic.ICollection Characters { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("companies")] + public System.Collections.Generic.ICollection Companies { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("contentRatings")] + public System.Collections.Generic.ICollection ContentRatings { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("country")] + public string Country { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("defaultSeasonType")] + public long? DefaultSeasonType { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("episodes")] + public System.Collections.Generic.ICollection Episodes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("firstAired")] + public string FirstAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("genres")] + public System.Collections.Generic.ICollection Genres { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("image")] + public string Image { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isOrderRandomized")] + public bool? IsOrderRandomized { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastAired")] + public string LastAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lastUpdated")] + public string LastUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("latestNetwork")] + public Tvdb.Models.Company LatestNetwork { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("lists")] + public object Lists { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nextAired")] + public string NextAired { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalCountry")] + public string OriginalCountry { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalLanguage")] + public string OriginalLanguage { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("originalNetwork")] + public Tvdb.Models.Company OriginalNetwork { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("remoteIds")] + public System.Collections.Generic.ICollection RemoteIds { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("score")] + public double? Score { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasonTypes")] + public System.Collections.Generic.ICollection SeasonTypes { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("seasons")] + public System.Collections.Generic.ICollection Seasons { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("status")] + public Tvdb.Models.Status Status { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tags")] + public System.Collections.Generic.ICollection Tags { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("trailers")] + public System.Collections.Generic.ICollection Trailers { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("translations")] + public Tvdb.Models.TranslationExtended Translations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("year")] + public string Year { get; set; } + } + public class SourceType + { + public SourceType() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("postfix")] + public string Postfix { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("prefix")] + public string Prefix { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("slug")] + public string Slug { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("sort")] + public long? Sort { get; set; } + } + public class Status + { + public Status() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("keepUpdated")] + public bool? KeepUpdated { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("recordType")] + public string RecordType { get; set; } + } + public class StudioBaseRecord + { + public StudioBaseRecord() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("parentStudio")] + public int? ParentStudio { get; set; } + } + public class Tag + { + public Tag() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("allowsMultiple")] + public bool? AllowsMultiple { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("helpText")] + public string HelpText { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("options")] + public System.Collections.Generic.ICollection Options { get; set; } + } + public class TagOption + { + public TagOption() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("helpText")] + public string HelpText { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tag")] + public long? Tag { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagName")] + public string TagName { get; set; } + } + public class TagOptionEntity + { + public TagOptionEntity() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagId")] + public int? TagId { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagName")] + public string TagName { get; set; } + } + public class Trailer + { + public Trailer() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public long? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("runtime")] + public int? Runtime { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("url")] + public string Url { get; set; } + } + public class Translation + { + public Translation() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("aliases")] + public System.Collections.Generic.ICollection Aliases { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isAlias")] + public bool? IsAlias { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("isPrimary")] + public bool? IsPrimary { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overview")] + public string Overview { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("tagline")] + public string Tagline { get; set; } + } + public class TranslationExtended + { + public TranslationExtended() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("alias")] + public System.Collections.Generic.ICollection Alias { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("nameTranslations")] + public System.Collections.Generic.ICollection NameTranslations { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("overviewTranslations")] + public System.Collections.Generic.ICollection OverviewTranslations { get; set; } + } + public class TranslationSimple : System.Collections.Generic.Dictionary + { + public TranslationSimple() { } + } + public enum UpdatesAction + { + [System.Runtime.Serialization.EnumMember(Value="delete")] + Delete = 0, + [System.Runtime.Serialization.EnumMember(Value="update")] + Update = 1, + } + public enum UpdatesType + { + [System.Runtime.Serialization.EnumMember(Value="artwork")] + Artwork = 0, + [System.Runtime.Serialization.EnumMember(Value="award_nominees")] + Award_nominees = 1, + [System.Runtime.Serialization.EnumMember(Value="companies")] + Companies = 2, + [System.Runtime.Serialization.EnumMember(Value="episodes")] + Episodes = 3, + [System.Runtime.Serialization.EnumMember(Value="lists")] + Lists = 4, + [System.Runtime.Serialization.EnumMember(Value="people")] + People = 5, + [System.Runtime.Serialization.EnumMember(Value="seasons")] + Seasons = 6, + [System.Runtime.Serialization.EnumMember(Value="series")] + Series = 7, + [System.Runtime.Serialization.EnumMember(Value="seriespeople")] + Seriespeople = 8, + [System.Runtime.Serialization.EnumMember(Value="artworktypes")] + Artworktypes = 9, + [System.Runtime.Serialization.EnumMember(Value="award_categories")] + Award_categories = 10, + [System.Runtime.Serialization.EnumMember(Value="awards")] + Awards = 11, + [System.Runtime.Serialization.EnumMember(Value="company_types")] + Company_types = 12, + [System.Runtime.Serialization.EnumMember(Value="content_ratings")] + Content_ratings = 13, + [System.Runtime.Serialization.EnumMember(Value="countries")] + Countries = 14, + [System.Runtime.Serialization.EnumMember(Value="entity_types")] + Entity_types = 15, + [System.Runtime.Serialization.EnumMember(Value="genres")] + Genres = 16, + [System.Runtime.Serialization.EnumMember(Value="languages")] + Languages = 17, + [System.Runtime.Serialization.EnumMember(Value="movies")] + Movies = 18, + [System.Runtime.Serialization.EnumMember(Value="movie_genres")] + Movie_genres = 19, + [System.Runtime.Serialization.EnumMember(Value="movie_status")] + Movie_status = 20, + [System.Runtime.Serialization.EnumMember(Value="peopletypes")] + Peopletypes = 21, + [System.Runtime.Serialization.EnumMember(Value="seasontypes")] + Seasontypes = 22, + [System.Runtime.Serialization.EnumMember(Value="sourcetypes")] + Sourcetypes = 23, + [System.Runtime.Serialization.EnumMember(Value="tag_options")] + Tag_options = 24, + [System.Runtime.Serialization.EnumMember(Value="tags")] + Tags = 25, + [System.Runtime.Serialization.EnumMember(Value="translatedcharacters")] + Translatedcharacters = 26, + [System.Runtime.Serialization.EnumMember(Value="translatedcompanies")] + Translatedcompanies = 27, + [System.Runtime.Serialization.EnumMember(Value="translatedepisodes")] + Translatedepisodes = 28, + [System.Runtime.Serialization.EnumMember(Value="translatedlists")] + Translatedlists = 29, + [System.Runtime.Serialization.EnumMember(Value="translatedmovies")] + Translatedmovies = 30, + [System.Runtime.Serialization.EnumMember(Value="translatedpeople")] + Translatedpeople = 31, + [System.Runtime.Serialization.EnumMember(Value="translatedseasons")] + Translatedseasons = 32, + [System.Runtime.Serialization.EnumMember(Value="translatedserierk")] + Translatedserierk = 33, + } + public class UserInfo + { + public UserInfo() { } + [System.Text.Json.Serialization.JsonExtensionData] + public System.Collections.Generic.IDictionary AdditionalProperties { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int? Id { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("language")] + public string Language { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } + [System.Text.Json.Serialization.JsonPropertyName("type")] + public string Type { get; set; } + } +} \ No newline at end of file diff --git a/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_public_api.verified.txt b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_public_api.verified.txt new file mode 100644 index 0000000..fa27895 --- /dev/null +++ b/tests/TvdbClient.Specs/PublicApiSpecs.TvdbClient_public_api.verified.txt @@ -0,0 +1,658 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/Chrison-dev/TvdbApi.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("TvdbClient.Specs")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace Tvdb.Clients +{ + public class ApiException : System.Exception + { + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception innerException) { } + public System.Collections.Generic.IReadOnlyDictionary> Headers { get; } + public string Response { get; } + public int StatusCode { get; } + public override string ToString() { } + } + public class ApiException : Tvdb.Clients.ApiException + { + public ApiException(string message, int statusCode, string response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception innerException) { } + public TResult Result { get; } + } + public class ArtworkClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IArtworkClient + { + public ArtworkClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Artwork_StatusesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IArtwork_StatusesClient + { + public Artwork_StatusesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Artwork_TypesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IArtwork_TypesClient + { + public Artwork_TypesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Award_CategoriesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IAward_CategoriesClient + { + public Award_CategoriesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class AwardsClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IAwardsClient + { + public AwardsClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class CharactersClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ICharactersClient + { + public CharactersClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class CompaniesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ICompaniesClient + { + public CompaniesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> CompaniesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Content_RatingsClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IContent_RatingsClient + { + public Content_RatingsClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> RatingsAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class CountriesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ICountriesClient + { + public CountriesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> CountriesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Entity_TypesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IEntity_TypesClient + { + public Entity_TypesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> EntitiesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class EpisodesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IEpisodesClient + { + public EpisodesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> EpisodesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetEpisodeExtendedMeta? meta = default, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class FavoritesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IFavoritesClient + { + public FavoritesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task FavoritesPostAsync(Tvdb.Models.FavoriteRecord body = null, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class GendersClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IGendersClient + { + public GendersClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> GendersAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class GenresClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IGenresClient + { + public GenresClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> GenresGetAsync(System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public interface IArtworkClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ArtworkAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public interface IArtwork_StatusesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IArtwork_TypesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IAward_CategoriesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task CategoriesAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public interface IAwardsClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> AwardsGetAsync(System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task AwardsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public interface ICharactersClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task CharactersAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public interface ICompaniesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task CompaniesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> CompaniesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IContent_RatingsClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> RatingsAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ICountriesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> CountriesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IEntity_TypesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> EntitiesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IEpisodesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task EpisodesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> EpisodesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetEpisodeExtendedMeta? meta = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + } + public interface IFavoritesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task FavoritesGetAsync(System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task FavoritesPostAsync(Tvdb.Models.FavoriteRecord body = null, System.Threading.CancellationToken cancellationToken = default); + } + public interface IGendersClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> GendersAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IGenresClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> GenresGetAsync(System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task GenresGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public interface IInspirationTypesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ILanguagesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> LanguagesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IListsClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> ListsGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + } + public interface ILoginClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task LoginAsync(Tvdb.Models.Body body, System.Threading.CancellationToken cancellationToken = default); + } + public interface IMovie_StatusesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IMoviesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetMovieExtendedMeta? meta = default, bool? short = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = default, long? contentRating = default, Tvdb.Models.GetMoviesFilterGenre? genre = default, Tvdb.Models.GetMoviesFilterSort? sort = default, Tvdb.Models.GetMoviesFilterStatus? status = default, long? year = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> MoviesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + } + public interface IPeopleClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetPeopleExtendedMeta? meta = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> PeopleGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + } + public interface IPeople_TypesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ISearchClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, long? year = default, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, long? offset = default, long? limit = default, System.Threading.CancellationToken cancellationToken = default); + } + public interface ISeasonsClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> SeasonsGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ISeriesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = default, int? episodeNumber = default, string airDate = null, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetSeriesExtendedMeta? meta = default, bool? short = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = default, long? contentRating = default, Tvdb.Models.GetSeriesFilterGenre? genre = default, Tvdb.Models.GetSeriesFilterSort? sort = default, Tvdb.Models.GetSeriesFilterSortType? sortType = default, Tvdb.Models.GetSeriesFilterStatus? status = default, long? year = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task> SeriesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default); + } + public interface ISeries_StatusesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface ISource_TypesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default); + } + public interface IUpdatesClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task> UpdatesAsync(long since, Tvdb.Models.UpdatesType? type = default, Tvdb.Models.UpdatesAction? action = default, long? page = default, System.Threading.CancellationToken cancellationToken = default); + } + public interface IUser_infoClient : Tvdb.Abstractions.ITvdbClient + { + System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default); + } + public class InspirationTypesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IInspirationTypesClient + { + public InspirationTypesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class LanguagesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ILanguagesClient + { + public LanguagesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task> LanguagesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class ListsClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IListsClient + { + public ListsClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ListsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> ListsGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class LoginClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ILoginClient + { + public LoginClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task LoginAsync(Tvdb.Models.Body body, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Movie_StatusesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IMovie_StatusesClient + { + public Movie_StatusesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class MoviesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IMoviesClient + { + public MoviesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetMovieExtendedMeta? meta = default, bool? short = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = default, long? contentRating = default, Tvdb.Models.GetMoviesFilterGenre? genre = default, Tvdb.Models.GetMoviesFilterSort? sort = default, Tvdb.Models.GetMoviesFilterStatus? status = default, long? year = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task MoviesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> MoviesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class PeopleClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IPeopleClient + { + public PeopleClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetPeopleExtendedMeta? meta = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task PeopleGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> PeopleGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class People_TypesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IPeople_TypesClient + { + public People_TypesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class SearchClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ISearchClient + { + public SearchClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> RemoteidAsync(string remoteId, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> SearchAsync(string query = null, string q = null, string type = null, long? year = default, string company = null, string country = null, string director = null, string language = null, string primaryType = null, string network = null, string remote_id = null, long? offset = default, long? limit = default, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class SeasonsClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ISeasonsClient + { + public SeasonsClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task SeasonsGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> SeasonsGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class SeriesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ISeriesClient + { + public SeriesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + public virtual System.Threading.Tasks.Task ArtworksAsync(long id, string lang = null, int? type = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, string lang, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task EpisodesGetAsync(int page, long id, string season_type, int? season = default, int? episodeNumber = default, string airDate = null, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task ExtendedAsync(long id, Tvdb.Models.GetSeriesExtendedMeta? meta = default, bool? short = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> FilterAsync(string country, string lang, long? company = default, long? contentRating = default, Tvdb.Models.GetSeriesFilterGenre? genre = default, Tvdb.Models.GetSeriesFilterSort? sort = default, Tvdb.Models.GetSeriesFilterSortType? sortType = default, Tvdb.Models.GetSeriesFilterStatus? status = default, long? year = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task NextAiredAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task SeriesGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task> SeriesGetAsync(long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task SlugAsync(string slug, System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task TranslationsAsync(long id, string language, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Series_StatusesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ISeries_StatusesClient + { + public Series_StatusesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> StatusesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class Source_TypesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.ISource_TypesClient + { + public Source_TypesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> TypesAsync(System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class UpdatesClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IUpdatesClient + { + public UpdatesClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task> UpdatesAsync(long since, Tvdb.Models.UpdatesType? type = default, Tvdb.Models.UpdatesAction? action = default, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } + public class User_infoClient : Tvdb.Abstractions.ITvdbClient, Tvdb.Clients.IUser_infoClient + { + public User_infoClient(System.Net.Http.HttpClient httpClient) { } + protected System.Text.Json.JsonSerializerOptions JsonSerializerSettings { get; } + public bool ReadResponseAsString { get; set; } + protected virtual System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) { } + public virtual System.Threading.Tasks.Task UserGetAsync(System.Threading.CancellationToken cancellationToken = default) { } + public virtual System.Threading.Tasks.Task UserGetAsync(long id, System.Threading.CancellationToken cancellationToken = default) { } + protected struct ObjectResponseResult + { + public ObjectResponseResult(T responseObject, string responseText) { } + public T Object { get; } + public string Text { get; } + } + } +} +namespace Tvdb.Constants +{ + public static class TvdbConstants + { + public const string HttpClientName = "Tvdb Api Client"; + } +} +namespace Tvdb.Handlers +{ + public class TokenAuthorizationHeaderHandler : System.Net.Http.DelegatingHandler + { + public TokenAuthorizationHeaderHandler(Tvdb.Abstractions.ITokenProvider tokenProvider) { } + protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { } + } +} +namespace Tvdb.Paging +{ + public static class TvdbPagingExtensions + { + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.ICompaniesClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.IEpisodesClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.IListsClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.IMoviesClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.IPeopleClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.ISeasonsClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.ISeriesClient client, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + public static System.Threading.Tasks.Task> GetPageAsync(this Tvdb.Clients.IUpdatesClient client, long since, Tvdb.Models.UpdatesType? type = default, Tvdb.Models.UpdatesAction? action = default, long? page = default, System.Threading.CancellationToken cancellationToken = default) { } + } +} +namespace Tvdb.Provider +{ + public class TvdbTokenProvider : Tvdb.Abstractions.ITokenProvider + { + public TvdbTokenProvider(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILogger logger) { } + public Tvdb.Abstractions.TvdbConfiguration Config { get; } + public Microsoft.Extensions.Logging.ILogger Logger { get; } + public Microsoft.Extensions.Options.IOptions Options { get; } + public Tvdb.Abstractions.Token Token { get; } + public System.Threading.Tasks.Task AcquireTokenAsync(System.Threading.CancellationToken cancellationToken = default) { } + } +} \ No newline at end of file diff --git a/tests/TvdbClient.Specs/PublicApiSpecs.cs b/tests/TvdbClient.Specs/PublicApiSpecs.cs new file mode 100644 index 0000000..e0865f5 --- /dev/null +++ b/tests/TvdbClient.Specs/PublicApiSpecs.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; +using PublicApiGenerator; +using VerifyXunit; +using Xunit; + +namespace TvdbClient.Specs; + +/// +/// Snapshots each package's public API surface (via PublicApiGenerator + Verify). Any +/// change to the public surface fails until the .verified.txt is re-accepted — catching +/// accidental breaking changes, and forcing intentional ones to be reviewed. +/// +public class PublicApiSpecs +{ + [Fact] + public Task TvdbClient_Models_public_api() + => Verifier.Verify(typeof(Tvdb.Models.SeriesBaseRecord).Assembly.GeneratePublicApi()); + + [Fact] + public Task TvdbClient_Abstractions_public_api() + => Verifier.Verify(typeof(Tvdb.Abstractions.ITvdbClient).Assembly.GeneratePublicApi()); + + [Fact] + public Task TvdbClient_public_api() + => Verifier.Verify(typeof(Tvdb.Paging.TvdbPagingExtensions).Assembly.GeneratePublicApi()); +} From fb799e57dc966ad027b3ad42591cf63812a39fa2 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Fri, 24 Jul 2026 01:16:04 +1200 Subject: [PATCH 7/7] chore(build): tidy Build.cs docs + regenerated build schema Doc-comment cleanup after reverting the (10.3.49-incompatible) publish [GitHubActions] attempt; regenerated .fallout/build.schema.json. Co-Authored-By: Claude Opus 4.8 (1M context) --- .fallout/build.schema.json | 7 ------- build/Build.cs | 7 +++---- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/.fallout/build.schema.json b/.fallout/build.schema.json index f3393c0..26f37c4 100644 --- a/.fallout/build.schema.json +++ b/.fallout/build.schema.json @@ -93,13 +93,6 @@ "Verbosity": { "description": "Logging verbosity during build execution. Default is 'Normal'", "$ref": "#/definitions/Verbosity" - }, - "BuildProjectFile": { - "type": [ - "null", - "string" - ], - "description": "Path to the build project (.csproj) relative to the repository root. Defaults to 'build/_build.csproj' when unset. Read by the Fallout global tool's in-tool runner." } } } diff --git a/build/Build.cs b/build/Build.cs index 48ccc6a..68cffaa 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -19,11 +19,10 @@ /// CI (build.yml, auto-generated from the [GitHubActions] attribute) runs Test + Pack /// on pushes/PRs to main. The Generate target owns codegen in-stack (NSwag's /// C# API — no CLI, no .nswag config, no external scripts) and is deliberately NOT in -/// CI — run it locally via ./build.ps1 Generate. Publishing to NuGet uses -/// trusted publishing (OIDC) via a dedicated workflow (Fallout has no built-in OIDC). +/// CI — run it locally via ./build.ps1 Generate. /// -// CI build lane — the workflow is GENERATED from this attribute (see CLAUDE.md: -// never hand-edit .github/workflows/*.yml). Regenerate with: +// Workflows are GENERATED from this attribute (see CLAUDE.md: never hand-edit +// .github/workflows/*.yml). Regenerate with `./build.cmd` or: // dotnet fallout --generate-configuration GitHubActions_build --host GitHubActions [GitHubActions( "build",