/* Options: Date: 2025-02-18 22:51:34 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.staging.pwc.de //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SearchProducts.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* /** * Represents a service to search for product data. */ @Route(Path="/sync/products/search", Verbs="GET") @Api(Description="Represents a service to search for product data.") open class SearchProducts : SearchProductsBase(), IReturn { companion object { private val responseType = ProductQueryResponse::class.java } override fun getResponseType(): Any? = SearchProducts.responseType } /** * Represents a query response that contains a structured error information and encapsulates products. */ @Api(Description="Represents a query response that contains a structured error information and encapsulates products.") open class ProductQueryResponse : QueryResponse() { /** * The dictionary of orders associated with each found product. */ @ApiMember(Description="The dictionary of orders associated with each found product.") open var ordersMap:HashMap> = HashMap>() } interface IPaginate { var skip:Int? var take:Int? } /** * Specifies a service to search for products. */ @Api(Description="Specifies a service to search for products.") open class SearchProductsBase : PaginationBase(), IGet { /** * The unique identifier of the account associated with the product. */ @ApiMember(Description="The unique identifier of the account associated with the product.") open var productId:Int? = null /** * The unique identifier of the account associated with the product. */ @ApiMember(Description="The unique identifier of the account associated with the product.") open var accountId:Int? = null /** * The name of the product. */ @ApiMember(Description="The name of the product.") open var name:String? = null /** * Search by using the name of the product that starts with the specified value. */ @ApiMember(Description="Search by using the name of the product that starts with the specified value.") open var nameStartsWith:String? = null /** * Search by using the name of the product that ends with the specified value. */ @ApiMember(Description="Search by using the name of the product that ends with the specified value.") open var nameEndsWith:String? = null /** * Search by using the name of the product that contains the specified value. */ @ApiMember(Description="Search by using the name of the product that contains the specified value.") open var nameContains:String? = null /** * The version of the product. */ @ApiMember(Description="The version of the product.") open var version:String? = null /** * Search by using the version of the product that starts with the specified value. */ @ApiMember(Description="Search by using the version of the product that starts with the specified value.") open var versionStartsWith:String? = null /** * Search by using the version of the product that ends with the specified value. */ @ApiMember(Description="Search by using the version of the product that ends with the specified value.") open var versionEndsWith:String? = null /** * Search by using the version of the product that contains the specified value. */ @ApiMember(Description="Search by using the version of the product that contains the specified value.") open var versionContains:String? = null /** * The description of the product. */ @ApiMember(Description="The description of the product.") open var description:String? = null /** * Search by using the description of the product that starts with the specified value. */ @ApiMember(Description="Search by using the description of the product that starts with the specified value.") open var descriptionStartsWith:String? = null /** * Search by using the description of the product that ends with the specified value. */ @ApiMember(Description="Search by using the description of the product that ends with the specified value.") open var descriptionEndsWith:String? = null /** * Search by using the description of the product that contains the specified value. */ @ApiMember(Description="Search by using the description of the product that contains the specified value.") open var descriptionContains:String? = null /** * Should the related orders of the account be included in the retrieved products? */ @ApiMember(Description="Should the related orders of the account be included in the retrieved products?") open var includeOrders:Boolean? = null /** * Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. */ @ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ") open var skipOrders:Int? = null /** * Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. */ @ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ") open var takeOrders:Int? = null } /** * Represents a product. */ @Api(Description="Represents a product.") open class Product : IHasName { /** * The unique identifier of the product. */ @ApiMember(Description="The unique identifier of the product.", IsRequired=true) open var id:Int? = null /** * The position of this instance in a collection of 'Product' instances */ @ApiMember(Description="The position of this instance in a collection of 'Product' instances", IsRequired=true) open var index:Int? = null /** * The name of the product. */ @ApiMember(Description="The name of the product.", IsRequired=true) @Validate(Validator="NotEmpty") override var name:String? = null /** * The version of the product. */ @ApiMember(Description="The version of the product.", IsRequired=true) @Validate(Validator="NotEmpty") open var version:String? = null /** * The version of the product. */ @ApiMember(Description="The version of the product.") open var description:String? = null /** * Tags associated with the product. */ @ApiMember(Description="Tags associated with the product.") open var tags:ArrayList = ArrayList() } @DataContract open class QueryResponse { @DataMember(Order=1) open var offset:Int? = null @DataMember(Order=2) open var total:Int? = null @DataMember(Order=3) open var results:ArrayList? = null @DataMember(Order=4) open var meta:HashMap? = null @DataMember(Order=5) open var responseStatus:ResponseStatus? = null } /** * The number of query results to skip. */ @Api(Description="The number of query results to skip.") open class PaginationBase : IPaginate { /** * The number of query results to skip. */ @ApiMember(Description="The number of query results to skip.") override var skip:Int? = null /** * The number of query results to include. */ @ApiMember(Description="The number of query results to include.") override var take:Int? = null } /** * Specifies that a data type should have a 'Name' property. */ interface IHasName { /** * The 'Name' property. */ var name:String? }