(* Options:
Date: 2025-04-04 18:55:37
Version: 8.52
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://taxfiling.pwc.de

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: VersionCheck.*
//ExcludeTypes: 
//InitializeCollections: False
//AddNamespaces: 
*)

namespace PwC.xEric.Core.Domain.Concretes.Models

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
open System.Net

    ///<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.")>]
    [<AllowNullLiteral>]
    type VersionCheckBase() = 
        interface IGet

    ///<summary>
    ///Represent a version of the internally used test module.
    ///</summary>
    [<Api(Description="Represent a version of the internally used test module.")>]
    [<AllowNullLiteral>]
    type PruefModul() = 
        ///<summary>
        ///The tax data type version of the test module.
        ///</summary>
        [<ApiMember(Description="The tax data type version of the test module.")>]
        member val DatenartVersion:String = null with get,set

        ///<summary>
        ///The label of the test module.
        ///</summary>
        [<ApiMember(Description="The label of the test module.")>]
        member val Label:String = null with get,set

        ///<summary>
        ///The runtime of the test module.
        ///</summary>
        [<ApiMember(Description="The runtime of the test module.")>]
        member val Runtime:String = null with get,set

    ///<summary>
    ///Represents Represents an ERiC dynamic library.
    ///</summary>
    [<Api(Description="Represents Represents an ERiC dynamic library.")>]
    [<AllowNullLiteral>]
    type Bibliothek() = 
        ///<summary>
        ///The name of the library.
        ///</summary>
        [<ApiMember(Description="The name of the library.")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The product version of the library.
        ///</summary>
        [<ApiMember(Description="The product version of the library.")>]
        member val Produktversion:String = null with get,set

        ///<summary>
        ///The file version of the library.
        ///</summary>
        [<ApiMember(Description="The file version of the library.")>]
        member val Dateiversion:String = null with get,set

        ///<summary>
        ///The list of test modules of the library.
        ///</summary>
        [<ApiMember(Description="The list of test modules of the library.")>]
        member val PruefModulen:ResizeArray<PruefModul> = null with 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.")>]
    [<AllowNullLiteral>]
    type EricVersion() = 
        ///<summary>
        ///The list of available ERiC dynamic libraries.
        ///</summary>
        [<ApiMember(Description="The list of available ERiC dynamic libraries.")>]
        member val Bibliotheken:ResizeArray<Bibliothek> = null with get,set

    ///<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.")>]
    [<AllowNullLiteral>]
    type EricFehlerCodeResponse() = 
        inherit ServiceReponseBase()
        ///<summary>
        ///The status code that the ERiC API function returns.
        ///</summary>
        [<ApiMember(Description="The status code that the ERiC API function returns.")>]
        member val StatusCode:EricFehlerCode = new EricFehlerCode() with get,set

        ///<summary>
        ///The status message that the ERiC API function returns.
        ///</summary>
        [<ApiMember(Description="The status message that the ERiC API function returns.")>]
        member val StatusText:String = null with 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.")>]
    [<AllowNullLiteral>]
    type EricVersionResponse() = 
        inherit EricFehlerCodeResponse()
        ///<summary>
        ///The version of an ERiC library component.
        ///</summary>
        [<ApiMember(Description="The version of an ERiC library component.")>]
        member val Rueckgabe:EricVersion = null with get,set

    ///<summary>
    ///A synchronous service to retrieve the list of all product and file versions of used ERiC-libraries.
    ///</summary>
    [<Route("/VersionCheck", "GET")>]
    [<Api(Description="A synchronous service to retrieve the list of all product and file versions of used ERiC-libraries.")>]
    [<AllowNullLiteral>]
    type VersionCheck() = 
        inherit VersionCheckBase()
        interface IReturn<EricVersionResponse>