(* Options: Date: 2025-04-07 08:28:48 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: SearchProductsAsync.* //ExcludeTypes: //InitializeCollections: False //AddNamespaces: *) namespace PwC.Metering.Core.Domain.Concretes.Interfaces open System open System.IO open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations open System.Net [<AllowNullLiteral>] type IPaginate = abstract Skip:Nullable<Int32> with get,set abstract Take:Nullable<Int32> with get,set ///<summary> ///The number of query results to skip. ///</summary> [<Api(Description="The number of query results to skip.")>] [<AllowNullLiteral>] type PaginationBase() = ///<summary> ///The number of query results to skip. ///</summary> [<ApiMember(Description="The number of query results to skip.")>] member val Skip:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///The number of query results to include. ///</summary> [<ApiMember(Description="The number of query results to include.")>] member val Take:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///Specifies a service to search for products. ///</summary> [<Api(Description="Specifies a service to search for products.")>] [<AllowNullLiteral>] type SearchProductsBase() = inherit PaginationBase() interface IGet ///<summary> ///The unique identifier of the account associated with the product. ///</summary> [<ApiMember(Description="The unique identifier of the account associated with the product.")>] member val ProductId:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///The unique identifier of the account associated with the product. ///</summary> [<ApiMember(Description="The unique identifier of the account associated with the product.")>] member val AccountId:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///The name of the product. ///</summary> [<ApiMember(Description="The name of the product.")>] member val Name:String = null with get,set ///<summary> ///Search by using the name of the product that starts with the specified value. ///</summary> [<ApiMember(Description="Search by using the name of the product that starts with the specified value.")>] member val NameStartsWith:String = null with get,set ///<summary> ///Search by using the name of the product that ends with the specified value. ///</summary> [<ApiMember(Description="Search by using the name of the product that ends with the specified value.")>] member val NameEndsWith:String = null with get,set ///<summary> ///Search by using the name of the product that contains the specified value. ///</summary> [<ApiMember(Description="Search by using the name of the product that contains the specified value.")>] member val NameContains:String = null with get,set ///<summary> ///The version of the product. ///</summary> [<ApiMember(Description="The version of the product.")>] member val Version:String = null with get,set ///<summary> ///Search by using the version of the product that starts with the specified value. ///</summary> [<ApiMember(Description="Search by using the version of the product that starts with the specified value.")>] member val VersionStartsWith:String = null with get,set ///<summary> ///Search by using the version of the product that ends with the specified value. ///</summary> [<ApiMember(Description="Search by using the version of the product that ends with the specified value.")>] member val VersionEndsWith:String = null with get,set ///<summary> ///Search by using the version of the product that contains the specified value. ///</summary> [<ApiMember(Description="Search by using the version of the product that contains the specified value.")>] member val VersionContains:String = null with get,set ///<summary> ///The description of the product. ///</summary> [<ApiMember(Description="The description of the product.")>] member val Description:String = null with get,set ///<summary> ///Search by using the description of the product that starts with the specified value. ///</summary> [<ApiMember(Description="Search by using the description of the product that starts with the specified value.")>] member val DescriptionStartsWith:String = null with get,set ///<summary> ///Search by using the description of the product that ends with the specified value. ///</summary> [<ApiMember(Description="Search by using the description of the product that ends with the specified value.")>] member val DescriptionEndsWith:String = null with get,set ///<summary> ///Search by using the description of the product that contains the specified value. ///</summary> [<ApiMember(Description="Search by using the description of the product that contains the specified value.")>] member val DescriptionContains:String = null with get,set ///<summary> ///Should the related orders of the account be included in the retrieved products? ///</summary> [<ApiMember(Description="Should the related orders of the account be included in the retrieved products?")>] member val IncludeOrders:Nullable<Boolean> = new Nullable<Boolean>() with get,set ///<summary> ///Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ///</summary> [<ApiMember(Description="Specifies the number of orders to skip per product. Applicable only when 'IncludeOrders' is true. ")>] member val SkipOrders:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ///</summary> [<ApiMember(Description="Specifies the number of orders to include per product. Applicable only when 'IncludeOrders' is true. ")>] member val TakeOrders:Nullable<Int32> = new Nullable<Int32>() with get,set ///<summary> ///Represents a product. ///</summary> [<Api(Description="Represents a product.")>] [<AllowNullLiteral>] type Product() = ///<summary> ///The unique identifier of the product. ///</summary> [<ApiMember(Description="The unique identifier of the product.", IsRequired=true)>] member val Id:Int32 = new Int32() with get,set ///<summary> ///The position of this instance in a collection of 'Product' instances ///</summary> [<ApiMember(Description="The position of this instance in a collection of 'Product' instances", IsRequired=true)>] member val Index:Int32 = new Int32() with get,set ///<summary> ///The name of the product. ///</summary> [<ApiMember(Description="The name of the product.", IsRequired=true)>] [<Validate(Validator="NotEmpty")>] member val Name:String = null with get,set ///<summary> ///The version of the product. ///</summary> [<ApiMember(Description="The version of the product.", IsRequired=true)>] [<Validate(Validator="NotEmpty")>] member val Version:String = null with get,set ///<summary> ///The version of the product. ///</summary> [<ApiMember(Description="The version of the product.")>] member val Description:String = null with get,set ///<summary> ///Tags associated with the product. ///</summary> [<ApiMember(Description="Tags associated with the product.")>] member val Tags:ResizeArray<String> = null with get,set ///<summary> /// Specifies that a data type should have a 'Name' property. ///</summary> [<AllowNullLiteral>] type IHasName = ///<summary> ///The 'Name' property. ///</summary> abstract Name:String with get,set ///<summary> ///Represents a query response that contains a structured error information and encapsulates products. ///</summary> [<Api(Description="Represents a query response that contains a structured error information and encapsulates products.")>] [<AllowNullLiteral>] type ProductQueryResponse() = inherit QueryResponse<Product>() ///<summary> ///The dictionary of orders associated with each found product. ///</summary> [<ApiMember(Description="The dictionary of orders associated with each found product.")>] member val OrdersMap:Dictionary<Int32, List<Order>> = null with get,set ///<summary> ///Represents a service to search for product data in an asynchronous operation. ///</summary> [<Route("/async/products/search", "GET")>] [<Api(Description="Represents a service to search for product data in an asynchronous operation.")>] [<AllowNullLiteral>] type SearchProductsAsync() = inherit SearchProductsBase() interface IReturn<ProductQueryResponse>