Tax Filing Service

<back to all web services

RegisterProduct

RegisterProductsSync

Represents a service request to register a product.

Requires Authentication
Required role:AdminRequired permissions:CanAccess, CanAdd
The following routes are available for this service:
POST/sync/products
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Represents a service request to register a product.
    */
    @Api(Description="Represents a service request to register a product.")
    public static class RegisterProduct extends RegisterProductBase
    {
        /**
        * The name of the product.
        */
        @ApiMember(Description="The name of the product.")
        public String name = null;

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

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

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

    /**
    * Specifies a base service request to register a product.
    */
    @Api(Description="Specifies a base service request to register a product.")
    public static class RegisterProductBase implements IPost
    {
        /**
        * The name of the product.
        */
        @ApiMember(Description="The name of the product.")
        public String name = null;

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

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

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

    /**
    * Represents a service response that encapsulates product data.
    */
    @Api(Description="Represents a service response that encapsulates product data.")
    public static class ProductResponse extends ServiceResponseBase
    {
        /**
        * The product data of the response.
        */
        @ApiMember(Description="The product data of the response.")
        public Product product = null;

        /**
        * The list of orders associated with the encapsulated product.
        */
        @ApiMember(Description="The list of orders associated with the encapsulated product.")
        public ArrayList<Order> orders = null;

        /**
        * Data structure that holds error information from a service operation.
        */
        @ApiMember(Description="Data structure that holds error information from a service operation.")
        public ResponseStatus responseStatus = null;
        
        public Product getProduct() { return product; }
        public ProductResponse setProduct(Product value) { this.product = value; return this; }
        public ArrayList<Order> getOrders() { return orders; }
        public ProductResponse setOrders(ArrayList<Order> value) { this.orders = value; return this; }
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public ProductResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
    }

    /**
    * Specifies a base service response class that contains a structured error information.
    */
    @Api(Description="Specifies a base service response class that contains a structured error information.")
    public static class ServiceResponseBase
    {
        /**
        * Data structure that holds error information from a service operation.
        */
        @ApiMember(Description="Data structure that holds error information from a service operation.")
        public ResponseStatus responseStatus = null;
        
        public ResponseStatus getResponseStatus() { return responseStatus; }
        public ServiceResponseBase 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; }
    }

    /**
    * Represents a commission to consume services.
    */
    @Api(Description="Represents a commission to consume services.")
    public static class Order implements IHasName
    {
        /**
        * The unique identifier of the order.
        */
        @ApiMember(Description="The unique identifier of the order.", IsRequired=true)
        public Integer id = null;

        /**
        * The unique identifier of the product, for which the order is made.
        */
        @ApiMember(Description="The unique identifier of the product, for which the order is made.", IsRequired=true)
        public Integer productId = null;

        /**
        * The unique identifier of the user account, who placed the order.
        */
        @ApiMember(Description="The unique identifier of the user account, who placed the order.", IsRequired=true)
        public Integer accountId = null;

        /**
        * A name to identify the order.
        */
        @ApiMember(Description="A name to identify the order.", IsRequired=true)
        @Validate(Validator="NotEmpty")
        public String name = null;

        /**
        * The name of the service, for which the order was made.
        */
        @ApiMember(Description="The name of the service, for which the order was made.")
        public String serviceName = null;

        /**
        * The time stamp at which the order was initiated.
        */
        @ApiMember(Description="The time stamp at which the order was initiated.")
        public Date requestTimestamp = null;

        /**
        * The time stamp at which the order was completed.
        */
        @ApiMember(Description="The time stamp at which the order was completed.")
        public Date responseTimestamp = null;

        /**
        * The URI from which the order was initiated.
        */
        @ApiMember(Description="The URI from which the order was initiated.")
        public String requestUri = null;

        /**
        * The HTTP method of the order request.
        */
        @ApiMember(Description="The HTTP method of the order request.")
        public String requestHttpMethod = null;

        /**
        * The duration of the order request.
        */
        @ApiMember(Description="The duration of the order request.")
        public TimeSpan requestDuration = null;

        /**
        * The HTTP status code of the order request.
        */
        @ApiMember(Description="The HTTP status code of the order request.")
        public HttpStatusCode responseStatusCode = null;

        /**
        * The IP address of client, who placed the order.
        */
        @ApiMember(Description="The IP address of client, who placed the order.")
        public String clientIPAddress = null;

        /**
        * The unit of measurement for the order.
        */
        @ApiMember(Description="The unit of measurement for the order.")
        public String unitOfMeasurement = null;

        /**
        * The type of process, for which the order is charged.
        */
        @ApiMember(Description="The type of process, for which the order is charged.")
        public String processType = null;

        /**
        * The type of data, for which the order is charged.
        */
        @ApiMember(Description="The type of data, for which the order is charged.")
        public String dataType = null;

        /**
        * The name of the data, for which the order is charged.
        */
        @ApiMember(Description="The name of the data, for which the order is charged.")
        public String dataName = null;

        /**
        * The date of creation of the order.
        */
        @ApiMember(Description="The date of creation of the order.")
        public Date creationDate = null;

        /**
        * The final date to retain the order in the records. After this date, the order is expunged from the records.
        */
        @ApiMember(Description="The final date to retain the order in the records. After this date, the order is expunged from the records.")
        public Date expiryDate = null;

        /**
        * Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.
        */
        @ApiMember(Description="Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes.")
        public Boolean isTest = null;
        
        public Integer getId() { return id; }
        public Order setId(Integer value) { this.id = value; return this; }
        public Integer getProductId() { return productId; }
        public Order setProductId(Integer value) { this.productId = value; return this; }
        public Integer getAccountId() { return accountId; }
        public Order setAccountId(Integer value) { this.accountId = value; return this; }
        public String getName() { return name; }
        public Order setName(String value) { this.name = value; return this; }
        public String getServiceName() { return serviceName; }
        public Order setServiceName(String value) { this.serviceName = value; return this; }
        public Date getRequestTimestamp() { return requestTimestamp; }
        public Order setRequestTimestamp(Date value) { this.requestTimestamp = value; return this; }
        public Date getResponseTimestamp() { return responseTimestamp; }
        public Order setResponseTimestamp(Date value) { this.responseTimestamp = value; return this; }
        public String getRequestUri() { return requestUri; }
        public Order setRequestUri(String value) { this.requestUri = value; return this; }
        public String getRequestHttpMethod() { return requestHttpMethod; }
        public Order setRequestHttpMethod(String value) { this.requestHttpMethod = value; return this; }
        public TimeSpan getRequestDuration() { return requestDuration; }
        public Order setRequestDuration(TimeSpan value) { this.requestDuration = value; return this; }
        public HttpStatusCode getResponseStatusCode() { return responseStatusCode; }
        public Order setResponseStatusCode(HttpStatusCode value) { this.responseStatusCode = value; return this; }
        public String getClientIPAddress() { return clientIPAddress; }
        public Order setClientIPAddress(String value) { this.clientIPAddress = value; return this; }
        public String getUnitOfMeasurement() { return unitOfMeasurement; }
        public Order setUnitOfMeasurement(String value) { this.unitOfMeasurement = value; return this; }
        public String getProcessType() { return processType; }
        public Order setProcessType(String value) { this.processType = value; return this; }
        public String getDataType() { return dataType; }
        public Order setDataType(String value) { this.dataType = value; return this; }
        public String getDataName() { return dataName; }
        public Order setDataName(String value) { this.dataName = value; return this; }
        public Date getCreationDate() { return creationDate; }
        public Order setCreationDate(Date value) { this.creationDate = value; return this; }
        public Date getExpiryDate() { return expiryDate; }
        public Order setExpiryDate(Date value) { this.expiryDate = value; return this; }
        public Boolean getIsTest() { return isTest; }
        public Order setIsTest(Boolean value) { this.isTest = value; return this; }
    }

}

Java RegisterProduct DTOs

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

HTTP + JSV

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

POST /sync/products HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	name: String,
	description: String,
	version: String,
	tags: 
	[
		String
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	product: 
	{
		id: 0,
		index: 0,
		name: String,
		version: String,
		description: String,
		tags: 
		[
			String
		]
	},
	orders: 
	[
		{
			id: 0,
			productId: 0,
			accountId: 0,
			name: String,
			serviceName: String,
			requestTimestamp: 0001-01-01,
			responseTimestamp: 0001-01-01,
			requestUri: String,
			requestHttpMethod: String,
			requestDuration: PT0S,
			responseStatusCode: Continue,
			clientIPAddress: String,
			unitOfMeasurement: String,
			processType: String,
			dataType: String,
			dataName: String,
			creationDate: 0001-01-01,
			expiryDate: 0001-01-01,
			isTest: False
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}