/* Options:
Date: 2025-04-03 22:47:38
Version: 8.52
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://taxfiling.pwc.de

//GlobalNamespace: 
//MakePartial: True
//MakeVirtual: True
//MakeInternal: False
//MakeDataContractsExtensible: False
//AddNullableAnnotations: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//InitializeCollections: False
//ExportValueTypes: False
IncludeTypes: VersionCheckAsync.*
//ExcludeTypes: 
//AddNamespaces: 
//AddDefaultXmlNamespace: http://schemas.servicestack.net/types
*/

using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using System.Net;
using PwC.xEric.Core.Services.Contracts.Requests;
using PwC.xEric.Core.Domain.Concretes.Models;
using PwC.xEric.Core.Services.Contracts.Responses;

namespace PwC.xEric.Core.Domain.Concretes.Models
{
    ///<summary>
    ///Represents Represents an ERiC dynamic library.
    ///</summary>
    [Api(Description="Represents Represents an ERiC dynamic library.")]
    public partial class Bibliothek
    {
        ///<summary>
        ///The name of the library.
        ///</summary>
        [ApiMember(Description="The name of the library.")]
        public virtual string Name { get; set; }

        ///<summary>
        ///The product version of the library.
        ///</summary>
        [ApiMember(Description="The product version of the library.")]
        public virtual string Produktversion { get; set; }

        ///<summary>
        ///The file version of the library.
        ///</summary>
        [ApiMember(Description="The file version of the library.")]
        public virtual string Dateiversion { get; set; }

        ///<summary>
        ///The list of test modules of the library.
        ///</summary>
        [ApiMember(Description="The list of test modules of the library.")]
        public virtual List<PruefModul> PruefModulen { get; set; } = [];
    }

    ///<summary>
    ///Represents a structure that encapsulates a list of ERiC dynamic libraries.
    ///</summary>
    [Api(Description="Represents a structure that encapsulates a list of ERiC dynamic libraries.")]
    public partial class EricVersion
    {
        ///<summary>
        ///The list of available ERiC dynamic libraries.
        ///</summary>
        [ApiMember(Description="The list of available ERiC dynamic libraries.")]
        public virtual List<Bibliothek> Bibliotheken { get; set; } = [];
    }

    ///<summary>
    ///Represent a version of the internally used test module.
    ///</summary>
    [Api(Description="Represent a version of the internally used test module.")]
    public partial class PruefModul
    {
        ///<summary>
        ///The tax data type version of the test module.
        ///</summary>
        [ApiMember(Description="The tax data type version of the test module.")]
        public virtual string DatenartVersion { get; set; }

        ///<summary>
        ///The label of the test module.
        ///</summary>
        [ApiMember(Description="The label of the test module.")]
        public virtual string Label { get; set; }

        ///<summary>
        ///The runtime of the test module.
        ///</summary>
        [ApiMember(Description="The runtime of the test module.")]
        public virtual string Runtime { get; set; }
    }

}

namespace PwC.xEric.Core.Services.Contracts.Requests
{
    ///<summary>
    ///An asynchronous service to retrieve the list of all product and file versions of used ERiC-libraries.
    ///</summary>
    [Route("/VersionCheckAsync", "GET")]
    [Api(Description="An asynchronous service to retrieve the list of all product and file versions of used ERiC-libraries.")]
    public partial class VersionCheckAsync
        : VersionCheckBase, IReturn<EricVersionResponse>
    {
    }

    ///<summary>
    ///A base service to retrieve the list of all product and file versions of used ERiC-libraries.
    ///</summary>
    [Api(Description="A base service to retrieve the list of all product and file versions of used ERiC-libraries.")]
    public partial class VersionCheckBase
        : IGet
    {
    }

}

namespace PwC.xEric.Core.Services.Contracts.Responses
{
    ///<summary>
    ///Represent a base response that encapsulate any ERiC API function return value.
    ///</summary>
    [Api(Description="Represent a base response that encapsulate any ERiC API function return value.")]
    public partial class EricFehlerCodeResponse
        : ServiceReponseBase
    {
        ///<summary>
        ///The status code that the ERiC API function returns.
        ///</summary>
        [ApiMember(Description="The status code that the ERiC API function returns.")]
        public virtual EricFehlerCode StatusCode { get; set; }

        ///<summary>
        ///The status message that the ERiC API function returns.
        ///</summary>
        [ApiMember(Description="The status message that the ERiC API function returns.")]
        public virtual string StatusText { get; set; }
    }

    ///<summary>
    ///Represents a type that encapsulates the versions of ERiC library components.
    ///</summary>
    [Api(Description="Represents a type that encapsulates the versions of ERiC library components.")]
    public partial class EricVersionResponse
        : EricFehlerCodeResponse
    {
        ///<summary>
        ///The version of an ERiC library component.
        ///</summary>
        [ApiMember(Description="The version of an ERiC library component.")]
        public virtual EricVersion Rueckgabe { get; set; }
    }

}