Tax Filing Service

<back to all web services

RetrieveAllProductsAsync

RetrieveProductsAsync

Represents a service request to retrieve all products in an asynchronous operation.

Requires Authentication
Required role:AdminRequired permission:CanAccess
The following routes are available for this service:
GET/async/products
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Represents a service request to retrieve all products in an asynchronous operation.
    */
    @Api(Description="Represents a service request to retrieve all products in an asynchronous operation.")
    public static class RetrieveAllProductsAsync extends RetrieveAllProductsBase
    {
        /**
        * 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?")
        public Boolean includeOrders = 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. ")
        public Integer skipOrders = 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. ")
        public Integer takeOrders = null;

        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Boolean isIncludeOrders() { return includeOrders; }
        public RetrieveAllProductsAsync setIncludeOrders(Boolean value) { this.includeOrders = value; return this; }
        public Integer getSkipOrders() { return skipOrders; }
        public RetrieveAllProductsAsync setSkipOrders(Integer value) { this.skipOrders = value; return this; }
        public Integer getTakeOrders() { return takeOrders; }
        public RetrieveAllProductsAsync setTakeOrders(Integer value) { this.takeOrders = value; return this; }
        public Integer getSkip() { return skip; }
        public RetrieveAllProductsAsync setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public RetrieveAllProductsAsync setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * Specifies a service to retrieve all products.
    */
    @Api(Description="Specifies a service to retrieve all products.")
    public static class RetrieveAllProductsBase extends PaginationBase implements IGet
    {
        /**
        * 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?")
        public Boolean includeOrders = 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. ")
        public Integer skipOrders = 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. ")
        public Integer takeOrders = null;

        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Boolean isIncludeOrders() { return includeOrders; }
        public RetrieveAllProductsBase setIncludeOrders(Boolean value) { this.includeOrders = value; return this; }
        public Integer getSkipOrders() { return skipOrders; }
        public RetrieveAllProductsBase setSkipOrders(Integer value) { this.skipOrders = value; return this; }
        public Integer getTakeOrders() { return takeOrders; }
        public RetrieveAllProductsBase setTakeOrders(Integer value) { this.takeOrders = value; return this; }
        public Integer getSkip() { return skip; }
        public RetrieveAllProductsBase setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public RetrieveAllProductsBase setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * The number of query results to skip.
    */
    @Api(Description="The number of query results to skip.")
    public static class PaginationBase implements IPaginate
    {
        /**
        * The number of query results to skip.
        */
        @ApiMember(Description="The number of query results to skip.")
        public Integer skip = null;

        /**
        * The number of query results to include.
        */
        @ApiMember(Description="The number of query results to include.")
        public Integer take = null;
        
        public Integer getSkip() { return skip; }
        public PaginationBase setSkip(Integer value) { this.skip = value; return this; }
        public Integer getTake() { return take; }
        public PaginationBase setTake(Integer value) { this.take = value; return this; }
    }

    /**
    * 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.")
    public static class ProductQueryResponse extends QueryResponse<Product>
    {
        /**
        * The dictionary of orders associated with each found product.
        */
        @ApiMember(Description="The dictionary of orders associated with each found product.")
        public HashMap<Integer,ArrayList<Order>> ordersMap = null;

        @DataMember(Order=1)
        public Integer offset = null;

        @DataMember(Order=2)
        public Integer total = null;

        @DataMember(Order=3)
        public ArrayList<Product> results = null;

        @DataMember(Order=4)
        public HashMap<String,String> meta = null;

        @DataMember(Order=5)
        public ResponseStatus responseStatus = null;
        
        public HashMap<Integer,ArrayList<Order>> getOrdersMap() { return ordersMap; }
        public ProductQueryResponse setOrdersMap(HashMap<Integer,ArrayList<Order>> value) { this.ordersMap = value; return this; }
        public Integer getOffset() { return offset; }
        public ProductQueryResponse setOffset(Integer value) { this.offset = value; return this; }
        public Integer getTotal() { return total; }
        public ProductQueryResponse setTotal(Integer value) { this.total = value; return this; }
        public ArrayList<Product> getResults() { return results; }
        public ProductQueryResponse setResults(ArrayList<Product> value) { this.results = value; return this; }
        public HashMap<String,String> getMeta() { return meta; }
        public ProductQueryResponse setMeta(HashMap<String,String> value) { this.meta = value; return this; }
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public ProductQueryResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    @DataContract
    public static class QueryResponse<T>
    {
        @DataMember(Order=1)
        public Integer offset = null;

        @DataMember(Order=2)
        public Integer total = null;

        @DataMember(Order=3)
        public ArrayList<T> results = null;

        @DataMember(Order=4)
        public HashMap<String,String> meta = null;

        @DataMember(Order=5)
        public ResponseStatus responseStatus = null;
        
        public Integer getOffset() { return offset; }
        public QueryResponse<T> setOffset(Integer value) { this.offset = value; return this; }
        public Integer getTotal() { return total; }
        public QueryResponse<T> setTotal(Integer value) { this.total = value; return this; }
        public ArrayList<T> getResults() { return results; }
        public QueryResponse<T> setResults(ArrayList<T> value) { this.results = value; return this; }
        public HashMap<String,String> getMeta() { return meta; }
        public QueryResponse<T> setMeta(HashMap<String,String> value) { this.meta = value; return this; }
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public QueryResponse<T> setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    /**
    * Represents a product.
    */
    @Api(Description="Represents a product.")
    public static class Product implements IHasName
    {
        /**
        * The unique identifier of the product.
        */
        @ApiMember(Description="The unique identifier of the product.", IsRequired=true)
        public Integer id = 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)
        public Integer index = null;

        /**
        * The name of the product.
        */
        @ApiMember(Description="The name of the product.", IsRequired=true)
        @Validate(Validator="NotEmpty")
        public String name = null;

        /**
        * The version of the product.
        */
        @ApiMember(Description="The version of the product.", IsRequired=true)
        @Validate(Validator="NotEmpty")
        public String version = null;

        /**
        * The version of the product.
        */
        @ApiMember(Description="The version of the product.")
        public String description = null;

        /**
        * Tags associated with the product.
        */
        @ApiMember(Description="Tags associated with the product.")
        public ArrayList<String> tags = null;
        
        public Integer getId() { return id; }
        public Product setId(Integer value) { this.id = value; return this; }
        public Integer getIndex() { return index; }
        public Product setIndex(Integer value) { this.index = value; return this; }
        public String getName() { return name; }
        public Product setName(String value) { this.name = value; return this; }
        public String getVersion() { return version; }
        public Product setVersion(String value) { this.version = value; return this; }
        public String getDescription() { return description; }
        public Product setDescription(String value) { this.description = value; return this; }
        public ArrayList<String> getTags() { return tags; }
        public Product setTags(ArrayList<String> value) { this.tags = value; return this; }
    }

}

Java RetrieveAllProductsAsync DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .x-msgpack suffix or ?format=x-msgpack

HTTP + X-MSGPACK

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /async/products HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: application/x-msgpack
HTTP/1.1 200 OK
Content-Type: application/x-msgpack
Content-Length: length

{"ordersMap":{"0":[{"id":0,"productId":0,"accountId":0,"name":"String","serviceName":"String","requestTimestamp":"\/Date(-62135596800000-0000)\/","responseTimestamp":"\/Date(-62135596800000-0000)\/","requestUri":"String","requestHttpMethod":"String","requestDuration":"PT0S","responseStatusCode":"Continue","clientIPAddress":"String","unitOfMeasurement":"String","processType":"String","dataType":"String","dataName":"String","creationDate":"\/Date(-62135596800000-0000)\/","expiryDate":"\/Date(-62135596800000-0000)\/","isTest":false}]},"offset":0,"total":0,"results":[{"id":0,"index":0,"name":"String","version":"String","description":"String","tags":["String"]}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}