Tax Filing Service

<back to all web services

SearchOrdersAsync

SearchOrdersAsync

Represents a service request from a standard user to search for orders in an asynchronous operation.

Requires Authentication
Required role:AllowAnyUserRequired permission:CanAccess
The following routes are available for this service:
GET/async/orders/search
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

/**
* The number of query results to skip.
*/
// @Api(Description="The number of query results to skip.")
abstract class PaginationBase implements IPaginate
{
    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    int? skip;

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    int? take;

    PaginationBase({this.skip,this.take});
    PaginationBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        skip = json['skip'];
        take = json['take'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'skip': skip,
        'take': take
    };

    getTypeName() => "PaginationBase";
    TypeContext? context = _ctx;
}

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

/**
* Specifies a service request from a standard user to search for orders.
*/
// @Api(Description="Specifies a service request from a standard user to search for orders.")
abstract class SearchOrdersBase extends PaginationBase implements IGet
{
    /**
    * The user name of the account.
    */
    // @ApiMember(Description="The user name of the account.")
    String? userName;

    /**
    * The name of the order.
    */
    // @ApiMember(Description="The name of the order.")
    String? name;

    /**
    * 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.")
    String? nameStartsWith;

    /**
    * 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.")
    String? nameEndsWith;

    /**
    * 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.")
    String? nameContains;

    /**
    * 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.")
    String? serviceName;

    /**
    * 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.")
    String? serviceNameStartsWith;

    /**
    * 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.")
    String? serviceNameEndsWith;

    /**
    * 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.")
    String? serviceNameContains;

    /**
    * 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.")
    DateTime? before;

    /**
    * 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.")
    DateTime? after;

    /**
    * 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.")
    DateTime? periodStartDate;

    /**
    * 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.")
    DateTime? periodEndDate;

    /**
    * 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.")
    PeriodMode? periodMode;

    /**
    * Was the order request successful?
    */
    // @ApiMember(Description="Was the order request successful?")
    bool? orderRequestSucceeded;

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

    /**
    * 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.")
    String? unitOfMeasurementStartsWith;

    /**
    * 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.")
    String? unitOfMeasurementEndsWith;

    /**
    * 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.")
    String? unitOfMeasurementContains;

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

    /**
    * 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.")
    String? processTypeStartsWith;

    /**
    * 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.")
    String? processTypeEndsWith;

    /**
    * 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.")
    String? processTypeContains;

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

    /**
    * 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.")
    String? dataTypeStartsWith;

    /**
    * 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.")
    String? dataTypeEndsWith;

    /**
    * 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.")
    String? dataTypeContains;

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

    /**
    * 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.")
    String? dataNameStartsWith;

    /**
    * 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.")
    String? dataNameEndsWith;

    /**
    * 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.")
    String? dataNameContains;

    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    int? skip;

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    int? take;

    SearchOrdersBase({this.userName,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.serviceName,this.serviceNameStartsWith,this.serviceNameEndsWith,this.serviceNameContains,this.before,this.after,this.periodStartDate,this.periodEndDate,this.periodMode,this.orderRequestSucceeded,this.unitOfMeasurement,this.unitOfMeasurementStartsWith,this.unitOfMeasurementEndsWith,this.unitOfMeasurementContains,this.processType,this.processTypeStartsWith,this.processTypeEndsWith,this.processTypeContains,this.dataType,this.dataTypeStartsWith,this.dataTypeEndsWith,this.dataTypeContains,this.dataName,this.dataNameStartsWith,this.dataNameEndsWith,this.dataNameContains,this.skip,this.take});
    SearchOrdersBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        userName = json['userName'];
        name = json['name'];
        nameStartsWith = json['nameStartsWith'];
        nameEndsWith = json['nameEndsWith'];
        nameContains = json['nameContains'];
        serviceName = json['serviceName'];
        serviceNameStartsWith = json['serviceNameStartsWith'];
        serviceNameEndsWith = json['serviceNameEndsWith'];
        serviceNameContains = json['serviceNameContains'];
        before = JsonConverters.fromJson(json['before'],'DateTime',context!);
        after = JsonConverters.fromJson(json['after'],'DateTime',context!);
        periodStartDate = JsonConverters.fromJson(json['periodStartDate'],'DateTime',context!);
        periodEndDate = JsonConverters.fromJson(json['periodEndDate'],'DateTime',context!);
        periodMode = JsonConverters.fromJson(json['periodMode'],'PeriodMode',context!);
        orderRequestSucceeded = json['orderRequestSucceeded'];
        unitOfMeasurement = json['unitOfMeasurement'];
        unitOfMeasurementStartsWith = json['unitOfMeasurementStartsWith'];
        unitOfMeasurementEndsWith = json['unitOfMeasurementEndsWith'];
        unitOfMeasurementContains = json['unitOfMeasurementContains'];
        processType = json['processType'];
        processTypeStartsWith = json['processTypeStartsWith'];
        processTypeEndsWith = json['processTypeEndsWith'];
        processTypeContains = json['processTypeContains'];
        dataType = json['dataType'];
        dataTypeStartsWith = json['dataTypeStartsWith'];
        dataTypeEndsWith = json['dataTypeEndsWith'];
        dataTypeContains = json['dataTypeContains'];
        dataName = json['dataName'];
        dataNameStartsWith = json['dataNameStartsWith'];
        dataNameEndsWith = json['dataNameEndsWith'];
        dataNameContains = json['dataNameContains'];
        skip = json['skip'];
        take = json['take'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'userName': userName,
        'name': name,
        'nameStartsWith': nameStartsWith,
        'nameEndsWith': nameEndsWith,
        'nameContains': nameContains,
        'serviceName': serviceName,
        'serviceNameStartsWith': serviceNameStartsWith,
        'serviceNameEndsWith': serviceNameEndsWith,
        'serviceNameContains': serviceNameContains,
        'before': JsonConverters.toJson(before,'DateTime',context!),
        'after': JsonConverters.toJson(after,'DateTime',context!),
        'periodStartDate': JsonConverters.toJson(periodStartDate,'DateTime',context!),
        'periodEndDate': JsonConverters.toJson(periodEndDate,'DateTime',context!),
        'periodMode': JsonConverters.toJson(periodMode,'PeriodMode',context!),
        'orderRequestSucceeded': orderRequestSucceeded,
        'unitOfMeasurement': unitOfMeasurement,
        'unitOfMeasurementStartsWith': unitOfMeasurementStartsWith,
        'unitOfMeasurementEndsWith': unitOfMeasurementEndsWith,
        'unitOfMeasurementContains': unitOfMeasurementContains,
        'processType': processType,
        'processTypeStartsWith': processTypeStartsWith,
        'processTypeEndsWith': processTypeEndsWith,
        'processTypeContains': processTypeContains,
        'dataType': dataType,
        'dataTypeStartsWith': dataTypeStartsWith,
        'dataTypeEndsWith': dataTypeEndsWith,
        'dataTypeContains': dataTypeContains,
        'dataName': dataName,
        'dataNameStartsWith': dataNameStartsWith,
        'dataNameEndsWith': dataNameEndsWith,
        'dataNameContains': dataNameContains,
        'skip': skip,
        'take': take
    });

    getTypeName() => "SearchOrdersBase";
    TypeContext? context = _ctx;
}

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

    /**
    * 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)
    int? productId;

    /**
    * 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)
    int? accountId;

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

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

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

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

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

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

    /**
    * The duration of the order request.
    */
    // @ApiMember(Description="The duration of the order request.")
    Duration? requestDuration;

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

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

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

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

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

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

    /**
    * The date of creation of the order.
    */
    // @ApiMember(Description="The date of creation of the order.")
    DateTime? creationDate;

    /**
    * 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.")
    DateTime? expiryDate;

    /**
    * 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.")
    bool? isTest;

    Order({this.id,this.productId,this.accountId,this.name,this.serviceName,this.requestTimestamp,this.responseTimestamp,this.requestUri,this.requestHttpMethod,this.requestDuration,this.responseStatusCode,this.clientIPAddress,this.unitOfMeasurement,this.processType,this.dataType,this.dataName,this.creationDate,this.expiryDate,this.isTest});
    Order.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        productId = json['productId'];
        accountId = json['accountId'];
        name = json['name'];
        serviceName = json['serviceName'];
        requestTimestamp = JsonConverters.fromJson(json['requestTimestamp'],'DateTime',context!);
        responseTimestamp = JsonConverters.fromJson(json['responseTimestamp'],'DateTime',context!);
        requestUri = json['requestUri'];
        requestHttpMethod = json['requestHttpMethod'];
        requestDuration = JsonConverters.fromJson(json['requestDuration'],'Duration',context!);
        responseStatusCode = JsonConverters.fromJson(json['responseStatusCode'],'HttpStatusCode',context!);
        clientIPAddress = json['clientIPAddress'];
        unitOfMeasurement = json['unitOfMeasurement'];
        processType = json['processType'];
        dataType = json['dataType'];
        dataName = json['dataName'];
        creationDate = JsonConverters.fromJson(json['creationDate'],'DateTime',context!);
        expiryDate = JsonConverters.fromJson(json['expiryDate'],'DateTime',context!);
        isTest = json['isTest'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'productId': productId,
        'accountId': accountId,
        'name': name,
        'serviceName': serviceName,
        'requestTimestamp': JsonConverters.toJson(requestTimestamp,'DateTime',context!),
        'responseTimestamp': JsonConverters.toJson(responseTimestamp,'DateTime',context!),
        'requestUri': requestUri,
        'requestHttpMethod': requestHttpMethod,
        'requestDuration': JsonConverters.toJson(requestDuration,'Duration',context!),
        'responseStatusCode': JsonConverters.toJson(responseStatusCode,'HttpStatusCode',context!),
        'clientIPAddress': clientIPAddress,
        'unitOfMeasurement': unitOfMeasurement,
        'processType': processType,
        'dataType': dataType,
        'dataName': dataName,
        'creationDate': JsonConverters.toJson(creationDate,'DateTime',context!),
        'expiryDate': JsonConverters.toJson(expiryDate,'DateTime',context!),
        'isTest': isTest
    };

    getTypeName() => "Order";
    TypeContext? context = _ctx;
}

/**
* 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.")
class OrderQueryResponse extends QueryResponse<Order> implements IConvertible
{
    // @DataMember(Order=1)
    int? offset;

    // @DataMember(Order=2)
    int? total;

    // @DataMember(Order=3)
    List<Order>? results;

    // @DataMember(Order=4)
    Map<String,String?>? meta;

    // @DataMember(Order=5)
    ResponseStatus? responseStatus;

    OrderQueryResponse({this.offset,this.total,this.results,this.meta,this.responseStatus});
    OrderQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        offset = json['offset'];
        total = json['total'];
        results = JsonConverters.fromJson(json['results'],'List<Order>',context!);
        meta = JsonConverters.toStringMap(json['meta']);
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'offset': offset,
        'total': total,
        'results': JsonConverters.toJson(results,'List<Order>',context!),
        'meta': meta,
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    });

    getTypeName() => "OrderQueryResponse";
    TypeContext? context = _ctx;
}

/**
* Represents a service request from a standard user to search for orders in an asynchronous operation.
*/
// @Api(Description="Represents a service request from a standard user to search for orders in an asynchronous operation.")
class SearchOrdersAsync extends SearchOrdersBase implements IConvertible
{
    /**
    * The user name of the account.
    */
    // @ApiMember(Description="The user name of the account.")
    String? userName;

    /**
    * The name of the order.
    */
    // @ApiMember(Description="The name of the order.")
    String? name;

    /**
    * 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.")
    String? nameStartsWith;

    /**
    * 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.")
    String? nameEndsWith;

    /**
    * 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.")
    String? nameContains;

    /**
    * 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.")
    String? serviceName;

    /**
    * 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.")
    String? serviceNameStartsWith;

    /**
    * 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.")
    String? serviceNameEndsWith;

    /**
    * 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.")
    String? serviceNameContains;

    /**
    * 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.")
    DateTime? before;

    /**
    * 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.")
    DateTime? after;

    /**
    * 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.")
    DateTime? periodStartDate;

    /**
    * 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.")
    DateTime? periodEndDate;

    /**
    * 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.")
    PeriodMode? periodMode;

    /**
    * Was the order request successful?
    */
    // @ApiMember(Description="Was the order request successful?")
    bool? orderRequestSucceeded;

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

    /**
    * 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.")
    String? unitOfMeasurementStartsWith;

    /**
    * 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.")
    String? unitOfMeasurementEndsWith;

    /**
    * 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.")
    String? unitOfMeasurementContains;

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

    /**
    * 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.")
    String? processTypeStartsWith;

    /**
    * 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.")
    String? processTypeEndsWith;

    /**
    * 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.")
    String? processTypeContains;

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

    /**
    * 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.")
    String? dataTypeStartsWith;

    /**
    * 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.")
    String? dataTypeEndsWith;

    /**
    * 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.")
    String? dataTypeContains;

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

    /**
    * 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.")
    String? dataNameStartsWith;

    /**
    * 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.")
    String? dataNameEndsWith;

    /**
    * 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.")
    String? dataNameContains;

    /**
    * The number of query results to skip.
    */
    // @ApiMember(Description="The number of query results to skip.")
    int? skip;

    /**
    * The number of query results to include.
    */
    // @ApiMember(Description="The number of query results to include.")
    int? take;

    SearchOrdersAsync({this.userName,this.name,this.nameStartsWith,this.nameEndsWith,this.nameContains,this.serviceName,this.serviceNameStartsWith,this.serviceNameEndsWith,this.serviceNameContains,this.before,this.after,this.periodStartDate,this.periodEndDate,this.periodMode,this.orderRequestSucceeded,this.unitOfMeasurement,this.unitOfMeasurementStartsWith,this.unitOfMeasurementEndsWith,this.unitOfMeasurementContains,this.processType,this.processTypeStartsWith,this.processTypeEndsWith,this.processTypeContains,this.dataType,this.dataTypeStartsWith,this.dataTypeEndsWith,this.dataTypeContains,this.dataName,this.dataNameStartsWith,this.dataNameEndsWith,this.dataNameContains,this.skip,this.take});
    SearchOrdersAsync.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        userName = json['userName'];
        name = json['name'];
        nameStartsWith = json['nameStartsWith'];
        nameEndsWith = json['nameEndsWith'];
        nameContains = json['nameContains'];
        serviceName = json['serviceName'];
        serviceNameStartsWith = json['serviceNameStartsWith'];
        serviceNameEndsWith = json['serviceNameEndsWith'];
        serviceNameContains = json['serviceNameContains'];
        before = JsonConverters.fromJson(json['before'],'DateTime',context!);
        after = JsonConverters.fromJson(json['after'],'DateTime',context!);
        periodStartDate = JsonConverters.fromJson(json['periodStartDate'],'DateTime',context!);
        periodEndDate = JsonConverters.fromJson(json['periodEndDate'],'DateTime',context!);
        periodMode = JsonConverters.fromJson(json['periodMode'],'PeriodMode',context!);
        orderRequestSucceeded = json['orderRequestSucceeded'];
        unitOfMeasurement = json['unitOfMeasurement'];
        unitOfMeasurementStartsWith = json['unitOfMeasurementStartsWith'];
        unitOfMeasurementEndsWith = json['unitOfMeasurementEndsWith'];
        unitOfMeasurementContains = json['unitOfMeasurementContains'];
        processType = json['processType'];
        processTypeStartsWith = json['processTypeStartsWith'];
        processTypeEndsWith = json['processTypeEndsWith'];
        processTypeContains = json['processTypeContains'];
        dataType = json['dataType'];
        dataTypeStartsWith = json['dataTypeStartsWith'];
        dataTypeEndsWith = json['dataTypeEndsWith'];
        dataTypeContains = json['dataTypeContains'];
        dataName = json['dataName'];
        dataNameStartsWith = json['dataNameStartsWith'];
        dataNameEndsWith = json['dataNameEndsWith'];
        dataNameContains = json['dataNameContains'];
        skip = json['skip'];
        take = json['take'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'userName': userName,
        'name': name,
        'nameStartsWith': nameStartsWith,
        'nameEndsWith': nameEndsWith,
        'nameContains': nameContains,
        'serviceName': serviceName,
        'serviceNameStartsWith': serviceNameStartsWith,
        'serviceNameEndsWith': serviceNameEndsWith,
        'serviceNameContains': serviceNameContains,
        'before': JsonConverters.toJson(before,'DateTime',context!),
        'after': JsonConverters.toJson(after,'DateTime',context!),
        'periodStartDate': JsonConverters.toJson(periodStartDate,'DateTime',context!),
        'periodEndDate': JsonConverters.toJson(periodEndDate,'DateTime',context!),
        'periodMode': JsonConverters.toJson(periodMode,'PeriodMode',context!),
        'orderRequestSucceeded': orderRequestSucceeded,
        'unitOfMeasurement': unitOfMeasurement,
        'unitOfMeasurementStartsWith': unitOfMeasurementStartsWith,
        'unitOfMeasurementEndsWith': unitOfMeasurementEndsWith,
        'unitOfMeasurementContains': unitOfMeasurementContains,
        'processType': processType,
        'processTypeStartsWith': processTypeStartsWith,
        'processTypeEndsWith': processTypeEndsWith,
        'processTypeContains': processTypeContains,
        'dataType': dataType,
        'dataTypeStartsWith': dataTypeStartsWith,
        'dataTypeEndsWith': dataTypeEndsWith,
        'dataTypeContains': dataTypeContains,
        'dataName': dataName,
        'dataNameStartsWith': dataNameStartsWith,
        'dataNameEndsWith': dataNameEndsWith,
        'dataNameContains': dataNameContains,
        'skip': skip,
        'take': take
    });

    getTypeName() => "SearchOrdersAsync";
    TypeContext? context = _ctx;
}

// @DataContract
class QueryResponse<T> implements IConvertible
{
    // @DataMember(Order=1)
    int? offset;

    // @DataMember(Order=2)
    int? total;

    // @DataMember(Order=3)
    List<T>? results;

    // @DataMember(Order=4)
    Map<String,String?>? meta;

    // @DataMember(Order=5)
    ResponseStatus? responseStatus;

    QueryResponse({this.offset,this.total,this.results,this.meta,this.responseStatus});
    QueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        offset = json['offset'];
        total = json['total'];
        results = JsonConverters.fromJson(json['results'],'List<${runtimeGenericTypeDefs(this,[0]).join(",")}>',context!);
        meta = JsonConverters.toStringMap(json['meta']);
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'offset': offset,
        'total': total,
        'results': JsonConverters.toJson(results,'List<T>',context!),
        'meta': meta,
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "QueryResponse<$T>";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'taxfiling.pwc.de', types: <String, TypeInfo> {
    'PaginationBase': TypeInfo(TypeOf.AbstractClass),
    'PeriodMode': TypeInfo(TypeOf.Enum, enumValues:PeriodMode.values),
    'SearchOrdersBase': TypeInfo(TypeOf.AbstractClass),
    'Order': TypeInfo(TypeOf.Class, create:() => Order()),
    'HttpStatusCode': TypeInfo(TypeOf.Class, create:() => HttpStatusCode()),
    'OrderQueryResponse': TypeInfo(TypeOf.Class, create:() => OrderQueryResponse()),
    'List<Order>': TypeInfo(TypeOf.Class, create:() => <Order>[]),
    'SearchOrdersAsync': TypeInfo(TypeOf.Class, create:() => SearchOrdersAsync()),
});

Dart SearchOrdersAsync DTOs

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

HTTP + OTHER

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

GET /async/orders/search HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
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"}}}