Tax Filing Service

<back to all web services

AdminSearchOrders

SearchOrdersSync

Represents a service request from an admin user to search for orders.

Requires Authentication
Required role:AdminRequired permission:CanAccess
The following routes are available for this service:
GET/sync/admin/orders/search
import Foundation
import ServiceStack

/**
* Represents a service request from an admin user to search for orders.
*/
// @Api(Description="Represents a service request from an admin user to search for orders.")
public class AdminSearchOrders : AdminSearchOrdersBase
{
    /**
    * The user name of the account.
    */
    // @ApiMember(Description="The user name of the account.")
    public var userName:String

    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.")
    public var orderId:Int?

    /**
    * 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.")
    public var productId:Int?

    /**
    * The unique identifier of the user account, who made the order.
    */
    // @ApiMember(Description="The unique identifier of the user account, who made the order.")
    public var accountId:Int?

    /**
    * The name of the order.
    */
    // @ApiMember(Description="The name of the order.")
    public var name:String

    /**
    * Search by using the name of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that starts with the specified value.")
    public var nameStartsWith:String

    /**
    * Search by using the name of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that ends with the specified value.")
    public var nameEndsWith:String

    /**
    * Search by using the name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that contains the specified value.")
    public var nameContains:String

    /**
    * Search by using the name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that contains the specified value.")
    public var serviceName:String

    /**
    * Search by using the service name of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that starts with the specified value.")
    public var serviceNameStartsWith:String

    /**
    * Search by using the service name of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that ends with the specified value.")
    public var serviceNameEndsWith:String

    /**
    * Search by using the service name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that contains the specified value.")
    public var serviceNameContains:String

    /**
    * Search for orders placed before a certain date and time. The specified date is included in the search.
    */
    // @ApiMember(Description="Search for orders placed before a certain date and time. The specified date is included in the search.")
    public var before:Date?

    /**
    * Search for orders placed after a certain date and time. The specified date is included in the search.
    */
    // @ApiMember(Description="Search for orders placed after a certain date and time. The specified date is included in the search.")
    public var after:Date?

    /**
    * Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.")
    public var periodStartDate:Date?

    /**
    * Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.")
    public var periodEndDate:Date?

    /**
    * Search for orders placed within the last 180 days. Today is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within the last 180 days. Today is included in the search.")
    public var periodMode:PeriodMode?

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

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

    /**
    * Was the order request successful?
    */
    // @ApiMember(Description="Was the order request successful?")
    public var orderRequestSucceeded:Bool?

    /**
    * The initial IP address of client, who made the order.
    */
    // @ApiMember(Description="The initial IP address of client, who made the order.")
    public var clientIPAddress:String

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

    /**
    * Search by using the unit of measurement of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that starts with the specified value.")
    public var unitOfMeasurementStartsWith:String

    /**
    * Search by using the unit of measurement of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that ends with the specified value.")
    public var unitOfMeasurementEndsWith:String

    /**
    * Search by using the unit of measurement of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that contains the specified value.")
    public var unitOfMeasurementContains:String

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

    /**
    * Search by using the process type of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that starts with the specified value.")
    public var processTypeStartsWith:String

    /**
    * Search by using the process type of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that ends with the specified value.")
    public var processTypeEndsWith:String

    /**
    * Search by using the process type of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that contains the specified value.")
    public var processTypeContains:String

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

    /**
    * Search by using the type of data, for which the order is charged that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that starts with the specified value.")
    public var dataTypeStartsWith:String

    /**
    * Search by using the type of data, for which the order is charged that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that ends with the specified value.")
    public var dataTypeEndsWith:String

    /**
    * Search by using the type of data, for which the order is charged that contains the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that contains the specified value.")
    public var dataTypeContains:String

    /**
    * 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 var dataName:String

    /**
    * Search by using the name of data, for which the order is charged that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that starts with the specified value.")
    public var dataNameStartsWith:String

    /**
    * Search by using the name of data, for which the order is charged that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that ends with the specified value.")
    public var dataNameEndsWith:String

    /**
    * Search by using the name of data, for which the order is charged that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that contains the specified value.")
    public var dataNameContains:String

    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    public var skip:Int?

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    public var take:Int?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case userName
        case orderId
        case productId
        case accountId
        case name
        case nameStartsWith
        case nameEndsWith
        case nameContains
        case serviceName
        case serviceNameStartsWith
        case serviceNameEndsWith
        case serviceNameContains
        case before
        case after
        case periodStartDate
        case periodEndDate
        case periodMode
        case requestUri
        case requestHttpMethod
        case orderRequestSucceeded
        case clientIPAddress
        case unitOfMeasurement
        case unitOfMeasurementStartsWith
        case unitOfMeasurementEndsWith
        case unitOfMeasurementContains
        case processType
        case processTypeStartsWith
        case processTypeEndsWith
        case processTypeContains
        case dataType
        case dataTypeStartsWith
        case dataTypeEndsWith
        case dataTypeContains
        case dataName
        case dataNameStartsWith
        case dataNameEndsWith
        case dataNameContains
        case skip
        case take
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        userName = try container.decodeIfPresent(String.self, forKey: .userName)
        orderId = try container.decodeIfPresent(Int.self, forKey: .orderId)
        productId = try container.decodeIfPresent(Int.self, forKey: .productId)
        accountId = try container.decodeIfPresent(Int.self, forKey: .accountId)
        name = try container.decodeIfPresent(String.self, forKey: .name)
        nameStartsWith = try container.decodeIfPresent(String.self, forKey: .nameStartsWith)
        nameEndsWith = try container.decodeIfPresent(String.self, forKey: .nameEndsWith)
        nameContains = try container.decodeIfPresent(String.self, forKey: .nameContains)
        serviceName = try container.decodeIfPresent(String.self, forKey: .serviceName)
        serviceNameStartsWith = try container.decodeIfPresent(String.self, forKey: .serviceNameStartsWith)
        serviceNameEndsWith = try container.decodeIfPresent(String.self, forKey: .serviceNameEndsWith)
        serviceNameContains = try container.decodeIfPresent(String.self, forKey: .serviceNameContains)
        before = try container.decodeIfPresent(Date.self, forKey: .before)
        after = try container.decodeIfPresent(Date.self, forKey: .after)
        periodStartDate = try container.decodeIfPresent(Date.self, forKey: .periodStartDate)
        periodEndDate = try container.decodeIfPresent(Date.self, forKey: .periodEndDate)
        periodMode = try container.decodeIfPresent(PeriodMode.self, forKey: .periodMode)
        requestUri = try container.decodeIfPresent(String.self, forKey: .requestUri)
        requestHttpMethod = try container.decodeIfPresent(String.self, forKey: .requestHttpMethod)
        orderRequestSucceeded = try container.decodeIfPresent(Bool.self, forKey: .orderRequestSucceeded)
        clientIPAddress = try container.decodeIfPresent(String.self, forKey: .clientIPAddress)
        unitOfMeasurement = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurement)
        unitOfMeasurementStartsWith = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementStartsWith)
        unitOfMeasurementEndsWith = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementEndsWith)
        unitOfMeasurementContains = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementContains)
        processType = try container.decodeIfPresent(String.self, forKey: .processType)
        processTypeStartsWith = try container.decodeIfPresent(String.self, forKey: .processTypeStartsWith)
        processTypeEndsWith = try container.decodeIfPresent(String.self, forKey: .processTypeEndsWith)
        processTypeContains = try container.decodeIfPresent(String.self, forKey: .processTypeContains)
        dataType = try container.decodeIfPresent(String.self, forKey: .dataType)
        dataTypeStartsWith = try container.decodeIfPresent(String.self, forKey: .dataTypeStartsWith)
        dataTypeEndsWith = try container.decodeIfPresent(String.self, forKey: .dataTypeEndsWith)
        dataTypeContains = try container.decodeIfPresent(String.self, forKey: .dataTypeContains)
        dataName = try container.decodeIfPresent(String.self, forKey: .dataName)
        dataNameStartsWith = try container.decodeIfPresent(String.self, forKey: .dataNameStartsWith)
        dataNameEndsWith = try container.decodeIfPresent(String.self, forKey: .dataNameEndsWith)
        dataNameContains = try container.decodeIfPresent(String.self, forKey: .dataNameContains)
        skip = try container.decodeIfPresent(Int.self, forKey: .skip)
        take = try container.decodeIfPresent(Int.self, forKey: .take)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if userName != nil { try container.encode(userName, forKey: .userName) }
        if orderId != nil { try container.encode(orderId, forKey: .orderId) }
        if productId != nil { try container.encode(productId, forKey: .productId) }
        if accountId != nil { try container.encode(accountId, forKey: .accountId) }
        if name != nil { try container.encode(name, forKey: .name) }
        if nameStartsWith != nil { try container.encode(nameStartsWith, forKey: .nameStartsWith) }
        if nameEndsWith != nil { try container.encode(nameEndsWith, forKey: .nameEndsWith) }
        if nameContains != nil { try container.encode(nameContains, forKey: .nameContains) }
        if serviceName != nil { try container.encode(serviceName, forKey: .serviceName) }
        if serviceNameStartsWith != nil { try container.encode(serviceNameStartsWith, forKey: .serviceNameStartsWith) }
        if serviceNameEndsWith != nil { try container.encode(serviceNameEndsWith, forKey: .serviceNameEndsWith) }
        if serviceNameContains != nil { try container.encode(serviceNameContains, forKey: .serviceNameContains) }
        if before != nil { try container.encode(before, forKey: .before) }
        if after != nil { try container.encode(after, forKey: .after) }
        if periodStartDate != nil { try container.encode(periodStartDate, forKey: .periodStartDate) }
        if periodEndDate != nil { try container.encode(periodEndDate, forKey: .periodEndDate) }
        if periodMode != nil { try container.encode(periodMode, forKey: .periodMode) }
        if requestUri != nil { try container.encode(requestUri, forKey: .requestUri) }
        if requestHttpMethod != nil { try container.encode(requestHttpMethod, forKey: .requestHttpMethod) }
        if orderRequestSucceeded != nil { try container.encode(orderRequestSucceeded, forKey: .orderRequestSucceeded) }
        if clientIPAddress != nil { try container.encode(clientIPAddress, forKey: .clientIPAddress) }
        if unitOfMeasurement != nil { try container.encode(unitOfMeasurement, forKey: .unitOfMeasurement) }
        if unitOfMeasurementStartsWith != nil { try container.encode(unitOfMeasurementStartsWith, forKey: .unitOfMeasurementStartsWith) }
        if unitOfMeasurementEndsWith != nil { try container.encode(unitOfMeasurementEndsWith, forKey: .unitOfMeasurementEndsWith) }
        if unitOfMeasurementContains != nil { try container.encode(unitOfMeasurementContains, forKey: .unitOfMeasurementContains) }
        if processType != nil { try container.encode(processType, forKey: .processType) }
        if processTypeStartsWith != nil { try container.encode(processTypeStartsWith, forKey: .processTypeStartsWith) }
        if processTypeEndsWith != nil { try container.encode(processTypeEndsWith, forKey: .processTypeEndsWith) }
        if processTypeContains != nil { try container.encode(processTypeContains, forKey: .processTypeContains) }
        if dataType != nil { try container.encode(dataType, forKey: .dataType) }
        if dataTypeStartsWith != nil { try container.encode(dataTypeStartsWith, forKey: .dataTypeStartsWith) }
        if dataTypeEndsWith != nil { try container.encode(dataTypeEndsWith, forKey: .dataTypeEndsWith) }
        if dataTypeContains != nil { try container.encode(dataTypeContains, forKey: .dataTypeContains) }
        if dataName != nil { try container.encode(dataName, forKey: .dataName) }
        if dataNameStartsWith != nil { try container.encode(dataNameStartsWith, forKey: .dataNameStartsWith) }
        if dataNameEndsWith != nil { try container.encode(dataNameEndsWith, forKey: .dataNameEndsWith) }
        if dataNameContains != nil { try container.encode(dataNameContains, forKey: .dataNameContains) }
        if skip != nil { try container.encode(skip, forKey: .skip) }
        if take != nil { try container.encode(take, forKey: .take) }
    }
}

/**
* Specifies a service request from an admin user to search for orders.
*/
// @Api(Description="Specifies a service request from an admin user to search for orders.")
public class AdminSearchOrdersBase : PaginationBase, IGet
{
    /**
    * The user name of the account.
    */
    // @ApiMember(Description="The user name of the account.")
    public var userName:String

    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.")
    public var orderId:Int?

    /**
    * 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.")
    public var productId:Int?

    /**
    * The unique identifier of the user account, who made the order.
    */
    // @ApiMember(Description="The unique identifier of the user account, who made the order.")
    public var accountId:Int?

    /**
    * The name of the order.
    */
    // @ApiMember(Description="The name of the order.")
    public var name:String

    /**
    * Search by using the name of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that starts with the specified value.")
    public var nameStartsWith:String

    /**
    * Search by using the name of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that ends with the specified value.")
    public var nameEndsWith:String

    /**
    * Search by using the name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that contains the specified value.")
    public var nameContains:String

    /**
    * Search by using the name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of the order that contains the specified value.")
    public var serviceName:String

    /**
    * Search by using the service name of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that starts with the specified value.")
    public var serviceNameStartsWith:String

    /**
    * Search by using the service name of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that ends with the specified value.")
    public var serviceNameEndsWith:String

    /**
    * Search by using the service name of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the service name of the order that contains the specified value.")
    public var serviceNameContains:String

    /**
    * Search for orders placed before a certain date and time. The specified date is included in the search.
    */
    // @ApiMember(Description="Search for orders placed before a certain date and time. The specified date is included in the search.")
    public var before:Date?

    /**
    * Search for orders placed after a certain date and time. The specified date is included in the search.
    */
    // @ApiMember(Description="Search for orders placed after a certain date and time. The specified date is included in the search.")
    public var after:Date?

    /**
    * Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.")
    public var periodStartDate:Date?

    /**
    * Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within a date and time period. The specified date is the start of the period and it is included in the search.")
    public var periodEndDate:Date?

    /**
    * Search for orders placed within the last 180 days. Today is included in the search.
    */
    // @ApiMember(Description="Search for orders placed within the last 180 days. Today is included in the search.")
    public var periodMode:PeriodMode?

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

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

    /**
    * Was the order request successful?
    */
    // @ApiMember(Description="Was the order request successful?")
    public var orderRequestSucceeded:Bool?

    /**
    * The initial IP address of client, who made the order.
    */
    // @ApiMember(Description="The initial IP address of client, who made the order.")
    public var clientIPAddress:String

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

    /**
    * Search by using the unit of measurement of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that starts with the specified value.")
    public var unitOfMeasurementStartsWith:String

    /**
    * Search by using the unit of measurement of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that ends with the specified value.")
    public var unitOfMeasurementEndsWith:String

    /**
    * Search by using the unit of measurement of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the unit of measurement of the order that contains the specified value.")
    public var unitOfMeasurementContains:String

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

    /**
    * Search by using the process type of the order that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that starts with the specified value.")
    public var processTypeStartsWith:String

    /**
    * Search by using the process type of the order that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that ends with the specified value.")
    public var processTypeEndsWith:String

    /**
    * Search by using the process type of the order that contains the specified value.
    */
    // @ApiMember(Description="Search by using the process type of the order that contains the specified value.")
    public var processTypeContains:String

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

    /**
    * Search by using the type of data, for which the order is charged that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that starts with the specified value.")
    public var dataTypeStartsWith:String

    /**
    * Search by using the type of data, for which the order is charged that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that ends with the specified value.")
    public var dataTypeEndsWith:String

    /**
    * Search by using the type of data, for which the order is charged that contains the specified value.
    */
    // @ApiMember(Description="Search by using the type of data, for which the order is charged that contains the specified value.")
    public var dataTypeContains:String

    /**
    * 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 var dataName:String

    /**
    * Search by using the name of data, for which the order is charged that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that starts with the specified value.")
    public var dataNameStartsWith:String

    /**
    * Search by using the name of data, for which the order is charged that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that ends with the specified value.")
    public var dataNameEndsWith:String

    /**
    * Search by using the name of data, for which the order is charged that contains the specified value.
    */
    // @ApiMember(Description="Search by using the name of data, for which the order is charged that contains the specified value.")
    public var dataNameContains:String

    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    public var skip:Int?

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    public var take:Int?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case userName
        case orderId
        case productId
        case accountId
        case name
        case nameStartsWith
        case nameEndsWith
        case nameContains
        case serviceName
        case serviceNameStartsWith
        case serviceNameEndsWith
        case serviceNameContains
        case before
        case after
        case periodStartDate
        case periodEndDate
        case periodMode
        case requestUri
        case requestHttpMethod
        case orderRequestSucceeded
        case clientIPAddress
        case unitOfMeasurement
        case unitOfMeasurementStartsWith
        case unitOfMeasurementEndsWith
        case unitOfMeasurementContains
        case processType
        case processTypeStartsWith
        case processTypeEndsWith
        case processTypeContains
        case dataType
        case dataTypeStartsWith
        case dataTypeEndsWith
        case dataTypeContains
        case dataName
        case dataNameStartsWith
        case dataNameEndsWith
        case dataNameContains
        case skip
        case take
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        userName = try container.decodeIfPresent(String.self, forKey: .userName)
        orderId = try container.decodeIfPresent(Int.self, forKey: .orderId)
        productId = try container.decodeIfPresent(Int.self, forKey: .productId)
        accountId = try container.decodeIfPresent(Int.self, forKey: .accountId)
        name = try container.decodeIfPresent(String.self, forKey: .name)
        nameStartsWith = try container.decodeIfPresent(String.self, forKey: .nameStartsWith)
        nameEndsWith = try container.decodeIfPresent(String.self, forKey: .nameEndsWith)
        nameContains = try container.decodeIfPresent(String.self, forKey: .nameContains)
        serviceName = try container.decodeIfPresent(String.self, forKey: .serviceName)
        serviceNameStartsWith = try container.decodeIfPresent(String.self, forKey: .serviceNameStartsWith)
        serviceNameEndsWith = try container.decodeIfPresent(String.self, forKey: .serviceNameEndsWith)
        serviceNameContains = try container.decodeIfPresent(String.self, forKey: .serviceNameContains)
        before = try container.decodeIfPresent(Date.self, forKey: .before)
        after = try container.decodeIfPresent(Date.self, forKey: .after)
        periodStartDate = try container.decodeIfPresent(Date.self, forKey: .periodStartDate)
        periodEndDate = try container.decodeIfPresent(Date.self, forKey: .periodEndDate)
        periodMode = try container.decodeIfPresent(PeriodMode.self, forKey: .periodMode)
        requestUri = try container.decodeIfPresent(String.self, forKey: .requestUri)
        requestHttpMethod = try container.decodeIfPresent(String.self, forKey: .requestHttpMethod)
        orderRequestSucceeded = try container.decodeIfPresent(Bool.self, forKey: .orderRequestSucceeded)
        clientIPAddress = try container.decodeIfPresent(String.self, forKey: .clientIPAddress)
        unitOfMeasurement = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurement)
        unitOfMeasurementStartsWith = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementStartsWith)
        unitOfMeasurementEndsWith = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementEndsWith)
        unitOfMeasurementContains = try container.decodeIfPresent(String.self, forKey: .unitOfMeasurementContains)
        processType = try container.decodeIfPresent(String.self, forKey: .processType)
        processTypeStartsWith = try container.decodeIfPresent(String.self, forKey: .processTypeStartsWith)
        processTypeEndsWith = try container.decodeIfPresent(String.self, forKey: .processTypeEndsWith)
        processTypeContains = try container.decodeIfPresent(String.self, forKey: .processTypeContains)
        dataType = try container.decodeIfPresent(String.self, forKey: .dataType)
        dataTypeStartsWith = try container.decodeIfPresent(String.self, forKey: .dataTypeStartsWith)
        dataTypeEndsWith = try container.decodeIfPresent(String.self, forKey: .dataTypeEndsWith)
        dataTypeContains = try container.decodeIfPresent(String.self, forKey: .dataTypeContains)
        dataName = try container.decodeIfPresent(String.self, forKey: .dataName)
        dataNameStartsWith = try container.decodeIfPresent(String.self, forKey: .dataNameStartsWith)
        dataNameEndsWith = try container.decodeIfPresent(String.self, forKey: .dataNameEndsWith)
        dataNameContains = try container.decodeIfPresent(String.self, forKey: .dataNameContains)
        skip = try container.decodeIfPresent(Int.self, forKey: .skip)
        take = try container.decodeIfPresent(Int.self, forKey: .take)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if userName != nil { try container.encode(userName, forKey: .userName) }
        if orderId != nil { try container.encode(orderId, forKey: .orderId) }
        if productId != nil { try container.encode(productId, forKey: .productId) }
        if accountId != nil { try container.encode(accountId, forKey: .accountId) }
        if name != nil { try container.encode(name, forKey: .name) }
        if nameStartsWith != nil { try container.encode(nameStartsWith, forKey: .nameStartsWith) }
        if nameEndsWith != nil { try container.encode(nameEndsWith, forKey: .nameEndsWith) }
        if nameContains != nil { try container.encode(nameContains, forKey: .nameContains) }
        if serviceName != nil { try container.encode(serviceName, forKey: .serviceName) }
        if serviceNameStartsWith != nil { try container.encode(serviceNameStartsWith, forKey: .serviceNameStartsWith) }
        if serviceNameEndsWith != nil { try container.encode(serviceNameEndsWith, forKey: .serviceNameEndsWith) }
        if serviceNameContains != nil { try container.encode(serviceNameContains, forKey: .serviceNameContains) }
        if before != nil { try container.encode(before, forKey: .before) }
        if after != nil { try container.encode(after, forKey: .after) }
        if periodStartDate != nil { try container.encode(periodStartDate, forKey: .periodStartDate) }
        if periodEndDate != nil { try container.encode(periodEndDate, forKey: .periodEndDate) }
        if periodMode != nil { try container.encode(periodMode, forKey: .periodMode) }
        if requestUri != nil { try container.encode(requestUri, forKey: .requestUri) }
        if requestHttpMethod != nil { try container.encode(requestHttpMethod, forKey: .requestHttpMethod) }
        if orderRequestSucceeded != nil { try container.encode(orderRequestSucceeded, forKey: .orderRequestSucceeded) }
        if clientIPAddress != nil { try container.encode(clientIPAddress, forKey: .clientIPAddress) }
        if unitOfMeasurement != nil { try container.encode(unitOfMeasurement, forKey: .unitOfMeasurement) }
        if unitOfMeasurementStartsWith != nil { try container.encode(unitOfMeasurementStartsWith, forKey: .unitOfMeasurementStartsWith) }
        if unitOfMeasurementEndsWith != nil { try container.encode(unitOfMeasurementEndsWith, forKey: .unitOfMeasurementEndsWith) }
        if unitOfMeasurementContains != nil { try container.encode(unitOfMeasurementContains, forKey: .unitOfMeasurementContains) }
        if processType != nil { try container.encode(processType, forKey: .processType) }
        if processTypeStartsWith != nil { try container.encode(processTypeStartsWith, forKey: .processTypeStartsWith) }
        if processTypeEndsWith != nil { try container.encode(processTypeEndsWith, forKey: .processTypeEndsWith) }
        if processTypeContains != nil { try container.encode(processTypeContains, forKey: .processTypeContains) }
        if dataType != nil { try container.encode(dataType, forKey: .dataType) }
        if dataTypeStartsWith != nil { try container.encode(dataTypeStartsWith, forKey: .dataTypeStartsWith) }
        if dataTypeEndsWith != nil { try container.encode(dataTypeEndsWith, forKey: .dataTypeEndsWith) }
        if dataTypeContains != nil { try container.encode(dataTypeContains, forKey: .dataTypeContains) }
        if dataName != nil { try container.encode(dataName, forKey: .dataName) }
        if dataNameStartsWith != nil { try container.encode(dataNameStartsWith, forKey: .dataNameStartsWith) }
        if dataNameEndsWith != nil { try container.encode(dataNameEndsWith, forKey: .dataNameEndsWith) }
        if dataNameContains != nil { try container.encode(dataNameContains, forKey: .dataNameContains) }
        if skip != nil { try container.encode(skip, forKey: .skip) }
        if take != nil { try container.encode(take, forKey: .take) }
    }
}

/**
* The number of query results to skip.
*/
// @Api(Description="The number of query results to skip.")
public class PaginationBase : IPaginate, Codable
{
    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    public var skip:Int?

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    public var take:Int?

    required public init(){}
}

/**
* Represents a specific time interval, within which, an action was carried out.
*/
public enum PeriodMode : String, Codable
{
    case Today
    case Yesterday
    case LastWeek
    case Last30Days
    case Last90Days
    case Last180Days
}

/**
* Represents a query response that contains a structured error information and encapsulates customers.
*/
// @Api(Description="Represents a query response that contains a structured error information and encapsulates customers.")
public class OrderQueryResponse : QueryResponse<Order>
{
    // @DataMember(Order=1)
    public var offset:Int

    // @DataMember(Order=2)
    public var total:Int

    // @DataMember(Order=3)
    public var results:[Order] = []

    // @DataMember(Order=4)
    public var meta:[String:String] = [:]

    // @DataMember(Order=5)
    public var responseStatus:ResponseStatus

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case offset
        case total
        case results
        case meta
        case responseStatus
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        offset = try container.decodeIfPresent(Int.self, forKey: .offset)
        total = try container.decodeIfPresent(Int.self, forKey: .total)
        results = try container.decodeIfPresent([Order].self, forKey: .results) ?? []
        meta = try container.decodeIfPresent([String:String].self, forKey: .meta) ?? [:]
        responseStatus = try container.decodeIfPresent(ResponseStatus.self, forKey: .responseStatus)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if offset != nil { try container.encode(offset, forKey: .offset) }
        if total != nil { try container.encode(total, forKey: .total) }
        if results.count > 0 { try container.encode(results, forKey: .results) }
        if meta.count > 0 { try container.encode(meta, forKey: .meta) }
        if responseStatus != nil { try container.encode(responseStatus, forKey: .responseStatus) }
    }
}

/**
* Represents a commission to consume services.
*/
// @Api(Description="Represents a commission to consume services.")
public class Order : IHasName, Codable
{
    /**
    * The unique identifier of the order.
    */
    // @ApiMember(Description="The unique identifier of the order.", IsRequired=true)
    public var id:Int

    /**
    * 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 var productId:Int

    /**
    * 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 var accountId:Int

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

    /**
    * 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 var serviceName:String

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

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

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

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

    /**
    * The duration of the order request.
    */
    // @ApiMember(Description="The duration of the order request.")
    @TimeSpan public var requestDuration:TimeInterval?

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

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

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

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

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

    /**
    * 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 var dataName:String

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

    /**
    * 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 var expiryDate:Date?

    /**
    * 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 var isTest:Bool

    required public init(){}
}


Swift AdminSearchOrders DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /sync/admin/orders/search HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"offset":0,"total":0,"results":[{"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}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}