/* Options:
Date: 2025-01-22 17:06:04
Version: 8.12
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://taxfiling.pwc.de

//Package: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: CreateUstVaXmlFromDefinition.*
//ExcludeTypes: 
//InitializeCollections: True
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

import java.math.*
import java.util.*
import net.servicestack.client.*


/**
* A synchronous service to create XML content that represents a preliminary VAT return (Umsatzsteuervoranmeldung) from the specified dictionary (hash map) of key/value definitions.
*/
@Route(Path="/CreateUstVaXmlFromDefinition", Verbs="POST")
@Api(Description="A synchronous service to create XML content that represents a preliminary VAT return (Umsatzsteuervoranmeldung) from the specified dictionary (hash map) of key/value definitions.")
open class CreateUstVaXmlFromDefinition : CreateUstVaXmlFromDefinitionBase(), IReturn<XmlResponse>
{
    /**
    * The 4-digit year of the tax assessment.
    */
    @ApiMember(Description="The 4-digit year of the tax assessment.")
    var jahr:Int? = null

    /**
    * Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.
    */
    @ApiMember(Description="Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.")
    var properties:HashMap<String,String> = HashMap<String,String>()
    companion object { private val responseType = XmlResponse::class.java }
    override fun getResponseType(): Any? = CreateUstVaXmlFromDefinition.responseType
}

/**
* Represents the response from a service that generates XML content.
*/
@Api(Description="Represents the response from a service that generates XML content.")
open class XmlResponse
{
    /**
    * The XML-based content of the response.
    */
    @ApiMember(Description="The XML-based content of the response.")
    var content:String? = null

    /**
    * Metadata that contains structured error information on the XML response.
    */
    @ApiMember(Description="Metadata that contains structured error information on the XML response.")
    var responseStatus:ResponseStatus? = null
}

/**
* Create XML content that  represents a preliminary VAT (Umsatzsteuervoranmeldung) return from the specified dictionary (hash map) of key/value definitions.
*/
@Api(Description="Create XML content that  represents a preliminary VAT (Umsatzsteuervoranmeldung) return from the specified dictionary (hash map) of key/value definitions.")
open class CreateUstVaXmlFromDefinitionBase : CreateXmlFromDefinitionBase(), IPost
{
    /**
    * The 4-digit year of the tax assessment.
    */
    @ApiMember(Description="The 4-digit year of the tax assessment.")
    var jahr:Int? = null

    /**
    * Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.
    */
    @ApiMember(Description="Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.")
    var properties:HashMap<String,String> = HashMap<String,String>()
}

/**
* Create a VAT return from a dictionary (hash map) of key/value definitions with a dictionary (hash map) of properties.
*/
@Api(Description="Create a VAT return from a dictionary (hash map) of key/value definitions with a dictionary (hash map) of properties.")
open class CreateXmlFromDefinitionBase
{
    /**
    * The 4-digit year of the tax assessment.
    */
    @ApiMember(Description="The 4-digit year of the tax assessment.")
    var jahr:Int? = null

    /**
    * Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.
    */
    @ApiMember(Description="Dictionary of key-value pairs that represent the intrinsic properties of the VAT return. Each key represents a name of the VAT property.Each value of the pair represents the VAT property value.")
    var properties:HashMap<String,String> = HashMap<String,String>()
}