         ]
         return try Node(node: object)
     }
-    
 }

 */
public final class Customer: StripeModelProtocol {
    
    public private(set) var id: String
    public private(set) var object: String?
    public var accountBalance: Int?
    public private(set) var created: Date?
    public var email: String?
    public var bussinessVATId: String?
    public var defaultSourceId: String?
    public var description: String?
    public private(set) var delinquent: Bool?
    public private(set) var isLive: Bool?
    
    public var metadata: Node?
    
    public var currency: StripeCurrency?
    public private(set) var shipping: ShippingLabel?
    public private(set) var sources: SourceList?
    public private(set) var subscriptions: SubscriptionList?
    
    public init() {
        self.id = ""
    }
    
    public init(node: Node) throws {
        self.id = try node.get("id")

            "description": self.description,
            "delinquent": self.delinquent,
            "livemode": self.isLive,
            "coupon": self.coupon,
            "metadata": self.metadata,
            "currency": self.currency?.rawValue,
            "shipping": self.shipping,
            "sources": self.sources,
