Tax Filing Service

<back to all web services

SearchAccounts

SearchAccountsSync

Represents a service to search for accounts.

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

/**
* Represents a service to search for accounts.
*/
// @Api(Description="Represents a service to search for accounts.")
public class SearchAccounts : SearchAccountsBase
{
    /**
    * The unique identifier of the user account.
    */
    // @ApiMember(Description="The unique identifier of the user account.")
    public var accountId:Int?

    /**
    * The unique identifier of the customer associated with this account.
    */
    // @ApiMember(Description="The unique identifier of the customer associated with this account.")
    public var customerId:Int?

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

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

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

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

    /**
    * The display name of the user account.
    */
    // @ApiMember(Description="The display name of the user account.")
    public var displayName:String

    /**
    * The e-mail address of the user account.
    */
    // @ApiMember(Description="The e-mail address of the user account.")
    public var email:String

    /**
    * Search by using the e-mail address of the user account that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that starts with the specified value.")
    public var emailStartsWith:String

    /**
    * Search by using the e-mail address of the user account that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that ends with the specified value.")
    public var emailEndsWith:String

    /**
    * Search by using the e-mail address of the user account that contains the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that contains the specified value.")
    public var emailContains:String

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

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

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

    /**
    * Search with the profile URL of the user account.
    */
    // @ApiMember(Description="Search with the profile URL of the user account.")
    public var profileUrl:String

    /**
    * Should the related products of the account be included in the retrieved accounts?
    */
    // @ApiMember(Description="Should the related products of the account be included in the retrieved accounts?")
    public var includeProducts:Bool

    /**
    * Should the related orders of the account be included in the retrieved accounts?
    */
    // @ApiMember(Description="Should the related orders of the account be included in the retrieved accounts?")
    public var includeOrders:Bool

    /**
    * Specifies the number of products to skip per account. Applicable only when 'IncludeProducts' is true. 
    */
    // @ApiMember(Description="Specifies the number of products to skip per account. Applicable only when 'IncludeProducts' is true. ")
    public var skipProducts:Int?

    /**
    * Specifies the number of products to include per account. Applicable only when 'IncludeProducts' is true. 
    */
    // @ApiMember(Description="Specifies the number of products to include per account. Applicable only when 'IncludeProducts' is true. ")
    public var takeProducts:Int?

    /**
    * Specifies the number of orders to skip per account. Applicable only when 'IncludeOrders' is true. 
    */
    // @ApiMember(Description="Specifies the number of orders to skip per account. Applicable only when 'IncludeOrders' is true. ")
    public var skipOrders:Int?

    /**
    * Specifies the number of orders to include per account. Applicable only when 'IncludeOrders' is true. 
    */
    // @ApiMember(Description="Specifies the number of orders to include per account. Applicable only when 'IncludeOrders' is true. ")
    public var takeOrders:Int?

    /**
    * 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 accountId
        case customerId
        case userName
        case userNameStartsWith
        case userNameEndsWith
        case userNameContains
        case displayName
        case email
        case emailStartsWith
        case emailEndsWith
        case emailContains
        case displayNameStartsWith
        case displayNameEndsWith
        case displayNameContains
        case profileUrl
        case includeProducts
        case includeOrders
        case skipProducts
        case takeProducts
        case skipOrders
        case takeOrders
        case skip
        case take
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        accountId = try container.decodeIfPresent(Int.self, forKey: .accountId)
        customerId = try container.decodeIfPresent(Int.self, forKey: .customerId)
        userName = try container.decodeIfPresent(String.self, forKey: .userName)
        userNameStartsWith = try container.decodeIfPresent(String.self, forKey: .userNameStartsWith)
        userNameEndsWith = try container.decodeIfPresent(String.self, forKey: .userNameEndsWith)
        userNameContains = try container.decodeIfPresent(String.self, forKey: .userNameContains)
        displayName = try container.decodeIfPresent(String.self, forKey: .displayName)
        email = try container.decodeIfPresent(String.self, forKey: .email)
        emailStartsWith = try container.decodeIfPresent(String.self, forKey: .emailStartsWith)
        emailEndsWith = try container.decodeIfPresent(String.self, forKey: .emailEndsWith)
        emailContains = try container.decodeIfPresent(String.self, forKey: .emailContains)
        displayNameStartsWith = try container.decodeIfPresent(String.self, forKey: .displayNameStartsWith)
        displayNameEndsWith = try container.decodeIfPresent(String.self, forKey: .displayNameEndsWith)
        displayNameContains = try container.decodeIfPresent(String.self, forKey: .displayNameContains)
        profileUrl = try container.decodeIfPresent(String.self, forKey: .profileUrl)
        includeProducts = try container.decodeIfPresent(Bool.self, forKey: .includeProducts)
        includeOrders = try container.decodeIfPresent(Bool.self, forKey: .includeOrders)
        skipProducts = try container.decodeIfPresent(Int.self, forKey: .skipProducts)
        takeProducts = try container.decodeIfPresent(Int.self, forKey: .takeProducts)
        skipOrders = try container.decodeIfPresent(Int.self, forKey: .skipOrders)
        takeOrders = try container.decodeIfPresent(Int.self, forKey: .takeOrders)
        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 accountId != nil { try container.encode(accountId, forKey: .accountId) }
        if customerId != nil { try container.encode(customerId, forKey: .customerId) }
        if userName != nil { try container.encode(userName, forKey: .userName) }
        if userNameStartsWith != nil { try container.encode(userNameStartsWith, forKey: .userNameStartsWith) }
        if userNameEndsWith != nil { try container.encode(userNameEndsWith, forKey: .userNameEndsWith) }
        if userNameContains != nil { try container.encode(userNameContains, forKey: .userNameContains) }
        if displayName != nil { try container.encode(displayName, forKey: .displayName) }
        if email != nil { try container.encode(email, forKey: .email) }
        if emailStartsWith != nil { try container.encode(emailStartsWith, forKey: .emailStartsWith) }
        if emailEndsWith != nil { try container.encode(emailEndsWith, forKey: .emailEndsWith) }
        if emailContains != nil { try container.encode(emailContains, forKey: .emailContains) }
        if displayNameStartsWith != nil { try container.encode(displayNameStartsWith, forKey: .displayNameStartsWith) }
        if displayNameEndsWith != nil { try container.encode(displayNameEndsWith, forKey: .displayNameEndsWith) }
        if displayNameContains != nil { try container.encode(displayNameContains, forKey: .displayNameContains) }
        if profileUrl != nil { try container.encode(profileUrl, forKey: .profileUrl) }
        if includeProducts != nil { try container.encode(includeProducts, forKey: .includeProducts) }
        if includeOrders != nil { try container.encode(includeOrders, forKey: .includeOrders) }
        if skipProducts != nil { try container.encode(skipProducts, forKey: .skipProducts) }
        if takeProducts != nil { try container.encode(takeProducts, forKey: .takeProducts) }
        if skipOrders != nil { try container.encode(skipOrders, forKey: .skipOrders) }
        if takeOrders != nil { try container.encode(takeOrders, forKey: .takeOrders) }
        if skip != nil { try container.encode(skip, forKey: .skip) }
        if take != nil { try container.encode(take, forKey: .take) }
    }
}

/**
* Specifies a service to search for accounts.
*/
// @Api(Description="Specifies a service to search for accounts.")
public class SearchAccountsBase : PaginationBase, IGet
{
    /**
    * The unique identifier of the user account.
    */
    // @ApiMember(Description="The unique identifier of the user account.")
    public var accountId:Int?

    /**
    * The unique identifier of the customer associated with this account.
    */
    // @ApiMember(Description="The unique identifier of the customer associated with this account.")
    public var customerId:Int?

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

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

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

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

    /**
    * The display name of the user account.
    */
    // @ApiMember(Description="The display name of the user account.")
    public var displayName:String

    /**
    * The e-mail address of the user account.
    */
    // @ApiMember(Description="The e-mail address of the user account.")
    public var email:String

    /**
    * Search by using the e-mail address of the user account that starts with the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that starts with the specified value.")
    public var emailStartsWith:String

    /**
    * Search by using the e-mail address of the user account that ends with the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that ends with the specified value.")
    public var emailEndsWith:String

    /**
    * Search by using the e-mail address of the user account that contains the specified value.
    */
    // @ApiMember(Description="Search by using the e-mail address of the user account that contains the specified value.")
    public var emailContains:String

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

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

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

    /**
    * Search with the profile URL of the user account.
    */
    // @ApiMember(Description="Search with the profile URL of the user account.")
    public var profileUrl:String

    /**
    * Should the related products of the account be included in the retrieved accounts?
    */
    // @ApiMember(Description="Should the related products of the account be included in the retrieved accounts?")
    public var includeProducts:Bool

    /**
    * Should the related orders of the account be included in the retrieved accounts?
    */
    // @ApiMember(Description="Should the related orders of the account be included in the retrieved accounts?")
    public var includeOrders:Bool

    /**
    * Specifies the number of products to skip per account. Applicable only when 'IncludeProducts' is true. 
    */
    // @ApiMember(Description="Specifies the number of products to skip per account. Applicable only when 'IncludeProducts' is true. ")
    public var skipProducts:Int?

    /**
    * Specifies the number of products to include per account. Applicable only when 'IncludeProducts' is true. 
    */
    // @ApiMember(Description="Specifies the number of products to include per account. Applicable only when 'IncludeProducts' is true. ")
    public var takeProducts:Int?

    /**
    * Specifies the number of orders to skip per account. Applicable only when 'IncludeOrders' is true. 
    */
    // @ApiMember(Description="Specifies the number of orders to skip per account. Applicable only when 'IncludeOrders' is true. ")
    public var skipOrders:Int?

    /**
    * Specifies the number of orders to include per account. Applicable only when 'IncludeOrders' is true. 
    */
    // @ApiMember(Description="Specifies the number of orders to include per account. Applicable only when 'IncludeOrders' is true. ")
    public var takeOrders:Int?

    /**
    * 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 accountId
        case customerId
        case userName
        case userNameStartsWith
        case userNameEndsWith
        case userNameContains
        case displayName
        case email
        case emailStartsWith
        case emailEndsWith
        case emailContains
        case displayNameStartsWith
        case displayNameEndsWith
        case displayNameContains
        case profileUrl
        case includeProducts
        case includeOrders
        case skipProducts
        case takeProducts
        case skipOrders
        case takeOrders
        case skip
        case take
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        accountId = try container.decodeIfPresent(Int.self, forKey: .accountId)
        customerId = try container.decodeIfPresent(Int.self, forKey: .customerId)
        userName = try container.decodeIfPresent(String.self, forKey: .userName)
        userNameStartsWith = try container.decodeIfPresent(String.self, forKey: .userNameStartsWith)
        userNameEndsWith = try container.decodeIfPresent(String.self, forKey: .userNameEndsWith)
        userNameContains = try container.decodeIfPresent(String.self, forKey: .userNameContains)
        displayName = try container.decodeIfPresent(String.self, forKey: .displayName)
        email = try container.decodeIfPresent(String.self, forKey: .email)
        emailStartsWith = try container.decodeIfPresent(String.self, forKey: .emailStartsWith)
        emailEndsWith = try container.decodeIfPresent(String.self, forKey: .emailEndsWith)
        emailContains = try container.decodeIfPresent(String.self, forKey: .emailContains)
        displayNameStartsWith = try container.decodeIfPresent(String.self, forKey: .displayNameStartsWith)
        displayNameEndsWith = try container.decodeIfPresent(String.self, forKey: .displayNameEndsWith)
        displayNameContains = try container.decodeIfPresent(String.self, forKey: .displayNameContains)
        profileUrl = try container.decodeIfPresent(String.self, forKey: .profileUrl)
        includeProducts = try container.decodeIfPresent(Bool.self, forKey: .includeProducts)
        includeOrders = try container.decodeIfPresent(Bool.self, forKey: .includeOrders)
        skipProducts = try container.decodeIfPresent(Int.self, forKey: .skipProducts)
        takeProducts = try container.decodeIfPresent(Int.self, forKey: .takeProducts)
        skipOrders = try container.decodeIfPresent(Int.self, forKey: .skipOrders)
        takeOrders = try container.decodeIfPresent(Int.self, forKey: .takeOrders)
        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 accountId != nil { try container.encode(accountId, forKey: .accountId) }
        if customerId != nil { try container.encode(customerId, forKey: .customerId) }
        if userName != nil { try container.encode(userName, forKey: .userName) }
        if userNameStartsWith != nil { try container.encode(userNameStartsWith, forKey: .userNameStartsWith) }
        if userNameEndsWith != nil { try container.encode(userNameEndsWith, forKey: .userNameEndsWith) }
        if userNameContains != nil { try container.encode(userNameContains, forKey: .userNameContains) }
        if displayName != nil { try container.encode(displayName, forKey: .displayName) }
        if email != nil { try container.encode(email, forKey: .email) }
        if emailStartsWith != nil { try container.encode(emailStartsWith, forKey: .emailStartsWith) }
        if emailEndsWith != nil { try container.encode(emailEndsWith, forKey: .emailEndsWith) }
        if emailContains != nil { try container.encode(emailContains, forKey: .emailContains) }
        if displayNameStartsWith != nil { try container.encode(displayNameStartsWith, forKey: .displayNameStartsWith) }
        if displayNameEndsWith != nil { try container.encode(displayNameEndsWith, forKey: .displayNameEndsWith) }
        if displayNameContains != nil { try container.encode(displayNameContains, forKey: .displayNameContains) }
        if profileUrl != nil { try container.encode(profileUrl, forKey: .profileUrl) }
        if includeProducts != nil { try container.encode(includeProducts, forKey: .includeProducts) }
        if includeOrders != nil { try container.encode(includeOrders, forKey: .includeOrders) }
        if skipProducts != nil { try container.encode(skipProducts, forKey: .skipProducts) }
        if takeProducts != nil { try container.encode(takeProducts, forKey: .takeProducts) }
        if skipOrders != nil { try container.encode(skipOrders, forKey: .skipOrders) }
        if takeOrders != nil { try container.encode(takeOrders, forKey: .takeOrders) }
        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 query response that contains a structured error information and encapsulates user accounts.
*/
// @Api(Description="Represents a query response that contains a structured error information and encapsulates user accounts.")
public class AccountQueryResponse : QueryResponse<Account>
{
    /**
    * The dictionary of products associated to found user accounts.
    */
    // @ApiMember(Description="The dictionary of products associated to found user accounts.")
    public var productsMap:[Int:[Product]] = [:]

    /**
    * The dictionary of orders associated with each found user account.
    */
    // @ApiMember(Description="The dictionary of orders associated with each found user account.")
    public var ordersMap:[Int:[Order]] = [:]

    // @DataMember(Order=1)
    public var offset:Int

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

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

    // @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 productsMap
        case ordersMap
        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)
        productsMap = try container.decodeIfPresent([Int:[Product]].self, forKey: .productsMap) ?? [:]
        ordersMap = try container.decodeIfPresent([Int:[Order]].self, forKey: .ordersMap) ?? [:]
        offset = try container.decodeIfPresent(Int.self, forKey: .offset)
        total = try container.decodeIfPresent(Int.self, forKey: .total)
        results = try container.decodeIfPresent([Account].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 productsMap.count > 0 { try container.encode(productsMap, forKey: .productsMap) }
        if ordersMap.count > 0 { try container.encode(ordersMap, forKey: .ordersMap) }
        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 user account.
*/
// @Api(Description="Represents a user account.")
public class Account : IHasUserName, Codable
{
    /**
    * The unique identifier of the user account.
    */
    // @ApiMember(Description="The unique identifier of the user account.", IsRequired=true)
    public var id:Int

    /**
    * The position of this instance in a collection of 'Account' instances
    */
    // @ApiMember(Description="The position of this instance in a collection of 'Account' instances", IsRequired=true)
    public var index:Int

    /**
    * The unique identifier of the customer associated with this account.
    */
    // @ApiMember(Description="The unique identifier of the customer associated with this account.", IsRequired=true)
    public var refId:Int?

    /**
    * The string representation of the unique identifier of a reference that associates with this user account. This should have the same value as 'RefId'.
    */
    // @ApiMember(Description="The string representation of the unique identifier of a reference that associates with this user account. This should have the same value as 'RefId'.")
    public var refIdStr:String

    /**
    * The unique user name of the user account.
    */
    // @ApiMember(Description="The unique user name of the user account.", IsRequired=true)
    public var userName:String

    /**
    * The electronic mail address of the user account.
    */
    // @ApiMember(Description="The electronic mail address of the user account.")
    public var email:String

    /**
    * The friendly name of the user account.
    */
    // @ApiMember(Description="The friendly name of the user account.")
    public var displayName:String

    /**
    * The first name of the owner (natural person) of the user account.
    */
    // @ApiMember(Description="The first name of the owner (natural person) of the user account.")
    public var firstName:String

    /**
    * The last name of the owner (natural person) of the user account.
    */
    // @ApiMember(Description="The last name of the owner (natural person) of the user account.")
    public var lastName:String

    /**
    * The unique identifier of the customer associated with this account.
    */
    // @ApiMember(Description="The unique identifier of the customer associated with this account.")
    public var fullName:String

    /**
    * The gender of the owner (natural person) of the user account.
    */
    // @ApiMember(Description="The gender of the owner (natural person) of the user account.")
    public var gender:String

    /**
    * The language of the owner of teh user account.
    */
    // @ApiMember(Description="The language of the owner of teh user account.")
    public var language:String

    /**
    * The company, where the user is an employee.
    */
    // @ApiMember(Description="The company, where the user is an employee.")
    public var company:String

    /**
    * The profile URL of the user account.
    */
    // @ApiMember(Description="The profile URL of the user account.", IsRequired=true)
    public var profileUrl:String

    /**
    * The roles assigned to the user account.
    */
    // @ApiMember(Description="The roles assigned to the user account.")
    public var roles:[String] = []

    /**
    * The permissions assigned to the user account.
    */
    // @ApiMember(Description="The permissions assigned to the user account.")
    public var permissions:[String] = []

    /**
    * The primary e-mail address of the user.
    */
    // @ApiMember(Description="The primary e-mail address of the user.")
    public var primaryEmail:String

    /**
    * Random data to enhance the security of the user password.
    */
    // @ApiMember(Description="Random data to enhance the security of the user password.")
    public var salt:String

    /**
    * The hash value of the user password that the PBKDF2 algorithm produces.
    */
    // @ApiMember(Description="The hash value of the user password that the PBKDF2 algorithm produces.")
    public var passwordHash:String

    /**
    * The hash value of the user password that the DigestHa1 algorithm produces.
    */
    // @ApiMember(Description="The hash value of the user password that the DigestHa1 algorithm produces.")
    public var digestHa1Hash:String

    /**
    * The number of times the user account tried to sign in but failed.
    */
    // @ApiMember(Description="The number of times the user account tried to sign in but failed.")
    public var invalidLoginAttempts:Int

    /**
    * The last time the user account attempted a sign in.
    */
    // @ApiMember(Description="The last time the user account attempted a sign in.")
    public var lastLoginAttempt:Date?

    /**
    * The date and time when the user acount was denied access.
    */
    // @ApiMember(Description="The date and time when the user acount was denied access.")
    public var lockedDate:Date?

    /**
    * The date and time when the user account was created.
    */
    // @ApiMember(Description="The date and time when the user account was created.")
    public var createdDate:Date

    /**
    * The date and time when the user account was last modified.
    */
    // @ApiMember(Description="The date and time when the user account was last modified.")
    public var modifiedDate:Date

    /**
    * The telephone number of the owner of the user account.
    */
    // @ApiMember(Description="The telephone number of the owner of the user account.")
    public var phoneNumber:String

    /**
    * The birth date of the owner of the user account
    */
    // @ApiMember(Description="The birth date of the owner of the user account")
    public var birthDate:Date?

    /**
    * The string representation of the birth date of the user account.
    */
    // @ApiMember(Description="The string representation of the birth date of the user account.")
    public var birthDateRaw:String

    /**
    * The mail address of the user account.
    */
    // @ApiMember(Description="The mail address of the user account.")
    public var address:String

    /**
    * Additional information for the specified 'Address' of the user.
    */
    // @ApiMember(Description="Additional information for the specified 'Address' of the user.")
    public var address2:String

    /**
    * The city of the owner of the user account.
    */
    // @ApiMember(Description="The city of the owner of the user account.")
    public var city:String

    /**
    * The state of the owner of the user account.
    */
    // @ApiMember(Description="The state of the owner of the user account.")
    public var state:String

    /**
    * The country of the owner of the user account. It is recommended to use the name of the associated 'Customer'.
    */
    // @ApiMember(Description="The country of the owner of the user account. It is recommended to use the name of the associated 'Customer'.")
    public var country:String

    /**
    * The locale of the user account.
    */
    // @ApiMember(Description="The locale of the user account.")
    public var culture:String

    /**
    * The mail address of the user account.
    */
    // @ApiMember(Description="The mail address of the user account.")
    public var mailAddress:String

    /**
    * The nickname of the user of the user account.
    */
    // @ApiMember(Description="The nickname of the user of the user account.")
    public var nickname:String

    /**
    * The postal code of the user account.
    */
    // @ApiMember(Description="The postal code of the user account.")
    public var postalCode:String

    /**
    * The time zone of the user of the user account.
    */
    // @ApiMember(Description="The time zone of the user of the user account.")
    public var timeZone:String

    /**
    * Additional information to attach to the user account.
    */
    // @ApiMember(Description="Additional information to attach to the user account.")
    public var meta:[String:String] = [:]

    required public init(){}
}


Swift SearchAccounts 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.

GET /sync/accounts/search HTTP/1.1 
Host: taxfiling.pwc.de 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	productsMap: 
	{
		0: 
		[
			{
				id: 0,
				index: 0,
				name: String,
				version: String,
				description: String,
				tags: 
				[
					String
				]
			}
		]
	},
	ordersMap: 
	{
		0: 
		[
			{
				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
			}
		]
	},
	offset: 0,
	total: 0,
	results: 
	[
		{
			id: 0,
			index: 0,
			refId: 0,
			refIdStr: String,
			userName: String,
			email: String,
			displayName: String,
			firstName: String,
			lastName: String,
			fullName: String,
			gender: String,
			language: String,
			company: String,
			profileUrl: String,
			roles: 
			[
				String
			],
			permissions: 
			[
				String
			],
			primaryEmail: String,
			salt: String,
			passwordHash: String,
			digestHa1Hash: String,
			invalidLoginAttempts: 0,
			lastLoginAttempt: 0001-01-01,
			lockedDate: 0001-01-01,
			createdDate: 0001-01-01,
			modifiedDate: 0001-01-01,
			phoneNumber: String,
			birthDate: 0001-01-01,
			birthDateRaw: String,
			address: String,
			address2: String,
			city: String,
			state: String,
			country: String,
			culture: String,
			mailAddress: String,
			nickname: String,
			postalCode: String,
			timeZone: String,
			meta: 
			{
				String: String
			}
		}
	],
	meta: 
	{
		String: String
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}