/* Options: Date: 2024-11-26 03:46:49 SwiftVersion: 5.0 Version: 8.12 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://taxfiling.staging.pwc.de //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: AddProductSubscriptionAsync.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Represents a service request to subscribe a user account to one or more products in an asynchronous operation. */ // @Route("/async/accounts/products/subscribe", "PUT") // @Api(Description="Represents a service request to subscribe a user account to one or more products in an asynchronous operation.") public class AddProductSubscriptionAsync : AddProductSubscriptionBase, IReturn { public typealias Return = AccountResponse /** * The unique identifier of the user account to subscribe. */ // @ApiMember(Description="The unique identifier of the user account to subscribe.") public var accountId:Int? /** * The user name of the user account to subscribe. */ // @ApiMember(Description="The user name of the user account to subscribe.") public var userName:String /** * The unique identifier of the product, to which the user account is subscribed. */ // @ApiMember(Description="The unique identifier of the product, to which the user account is subscribed.") public var productId:Int? /** * The name of the product, to which the user account is subscribed. */ // @ApiMember(Description="The name of the product, to which the user account is subscribed.") public var productName:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case accountId case userName case productId case productName } 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) userName = try container.decodeIfPresent(String.self, forKey: .userName) productId = try container.decodeIfPresent(Int.self, forKey: .productId) productName = try container.decodeIfPresent(String.self, forKey: .productName) } 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 userName != nil { try container.encode(userName, forKey: .userName) } if productId != nil { try container.encode(productId, forKey: .productId) } if productName != nil { try container.encode(productName, forKey: .productName) } } } /** * Represents a service response that contains a structured error information and encapsulates a user account. */ // @Api(Description="Represents a service response that contains a structured error information and encapsulates a user account.") public class AccountResponse : ServiceResponseBase { /** * The user account encapsulated in the response. */ // @ApiMember(Description="The user account encapsulated in the response.") public var account:Account /** * The index position of the reponse in a collection, if it were returned together with other responses. */ // @ApiMember(Description="The index position of the reponse in a collection, if it were returned together with other responses.") public var index:Int /** * The list of products associated with the encapsulated user account. */ // @ApiMember(Description="The list of products associated with the encapsulated user account.") public var products:[Product] = [] /** * The list of orders associated with the encapsulated user account. */ // @ApiMember(Description="The list of orders associated with the encapsulated user account.") public var orders:[Order] = [] /** * Data structure that holds error information from a service operation. */ // @ApiMember(Description="Data structure that holds error information from a service operation.") public var responseStatus:ResponseStatus required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case account case index case products case orders case responseStatus } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) account = try container.decodeIfPresent(Account.self, forKey: .account) index = try container.decodeIfPresent(Int.self, forKey: .index) products = try container.decodeIfPresent([Product].self, forKey: .products) ?? [] orders = try container.decodeIfPresent([Order].self, forKey: .orders) ?? [] 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 account != nil { try container.encode(account, forKey: .account) } if index != nil { try container.encode(index, forKey: .index) } if products.count > 0 { try container.encode(products, forKey: .products) } if orders.count > 0 { try container.encode(orders, forKey: .orders) } if responseStatus != nil { try container.encode(responseStatus, forKey: .responseStatus) } } } /** * Specifies a base service request to subscribe a user account to one or more products. */ // @Api(Description="Specifies a base service request to subscribe a user account to one or more products.") public class AddProductSubscriptionBase : IPut, Codable { /** * The unique identifier of the user account to subscribe. */ // @ApiMember(Description="The unique identifier of the user account to subscribe.") public var accountId:Int? /** * The user name of the user account to subscribe. */ // @ApiMember(Description="The user name of the user account to subscribe.") public var userName:String /** * The unique identifier of the product, to which the user account is subscribed. */ // @ApiMember(Description="The unique identifier of the product, to which the user account is subscribed.") public var productId:Int? /** * The name of the product, to which the user account is subscribed. */ // @ApiMember(Description="The name of the product, to which the user account is subscribed.") public var productName:String required public init(){} } /** * 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(){} } /** * Represents a product. */ // @Api(Description="Represents a product.") public class Product : IHasName, Codable { /** * The unique identifier of the product. */ // @ApiMember(Description="The unique identifier of the product.", IsRequired=true) public var id:Int /** * The position of this instance in a collection of 'Product' instances */ // @ApiMember(Description="The position of this instance in a collection of 'Product' instances", IsRequired=true) public var index:Int /** * The name of the product. */ // @ApiMember(Description="The name of the product.", IsRequired=true) // @Validate(Validator="NotEmpty") public var name:String /** * The version of the product. */ // @ApiMember(Description="The version of the product.", IsRequired=true) // @Validate(Validator="NotEmpty") public var version:String /** * The version of the product. */ // @ApiMember(Description="The version of the product.") public var Description:String /** * Tags associated with the product. */ // @ApiMember(Description="Tags associated with the product.") public var tags:[String] = [] required public init(){} } /** * 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(){} } /** * Specifies a base service response class that contains a structured error information. */ // @Api(Description="Specifies a base service response class that contains a structured error information.") public class ServiceResponseBase : Codable { /** * Data structure that holds error information from a service operation. */ // @ApiMember(Description="Data structure that holds error information from a service operation.") public var responseStatus:ResponseStatus required public init(){} } /** * Specifies that a data type should have a 'UserName' property. */ public protocol IHasUserName { var userName:String { get set } } /** * Specifies that a data type should have a 'Name' property. */ public protocol IHasName { /** * The 'Name' property. */ var name:String { get set } } public enum HttpStatusCode : Int, Codable { case Continue = 100 case SwitchingProtocols = 101 case Processing = 102 case EarlyHints = 103 case OK = 200 case Created = 201 case Accepted = 202 case NonAuthoritativeInformation = 203 case NoContent = 204 case ResetContent = 205 case PartialContent = 206 case MultiStatus = 207 case AlreadyReported = 208 case IMUsed = 226 case MultipleChoices = 300 case Ambiguous = 300 case MovedPermanently = 301 case Moved = 301 case Found = 302 case Redirect = 302 case SeeOther = 303 case RedirectMethod = 303 case NotModified = 304 case UseProxy = 305 case Unused = 306 case TemporaryRedirect = 307 case RedirectKeepVerb = 307 case PermanentRedirect = 308 case BadRequest = 400 case Unauthorized = 401 case PaymentRequired = 402 case Forbidden = 403 case NotFound = 404 case MethodNotAllowed = 405 case NotAcceptable = 406 case ProxyAuthenticationRequired = 407 case RequestTimeout = 408 case Conflict = 409 case Gone = 410 case LengthRequired = 411 case PreconditionFailed = 412 case RequestEntityTooLarge = 413 case RequestUriTooLong = 414 case UnsupportedMediaType = 415 case RequestedRangeNotSatisfiable = 416 case ExpectationFailed = 417 case MisdirectedRequest = 421 case UnprocessableEntity = 422 case UnprocessableContent = 422 case Locked = 423 case FailedDependency = 424 case UpgradeRequired = 426 case PreconditionRequired = 428 case TooManyRequests = 429 case RequestHeaderFieldsTooLarge = 431 case UnavailableForLegalReasons = 451 case InternalServerError = 500 case NotImplemented = 501 case BadGateway = 502 case ServiceUnavailable = 503 case GatewayTimeout = 504 case HttpVersionNotSupported = 505 case VariantAlsoNegotiates = 506 case InsufficientStorage = 507 case LoopDetected = 508 case NotExtended = 510 case NetworkAuthenticationRequired = 511 }