import Foundation

public struct Configuration {
    let token: String
    let units: Unit?
    let exclude: Exclude?
    let extend: Extend?
    let lang: String?
    
    init (token: String,
          units: Unit? = nil,
          exclude: Exclude? = nil,
          extend: Extend? = nil,
          lang: String? = nil) {
        
        self.token = token
        self.units = units
        self.exclude = exclude
        self.extend = extend
        self.lang = lang
    }
}

enum Unit: String {
    case us, si, ca, uk2, auto
}

enum Exclude: String {
    case currently, minutely, hourly, daily, alerts, flags
}

enum Extend: String {
    case hourly
}

import Foundation

public struct Configuration {
    public let token: String
    public let units: Unit?
    public let exclude: Exclude?
    public let extend: Extend?
    public let lang: String?

    public init (token: String,
                 units: Unit? = nil,
                 exclude: Exclude? = nil,
                 extend: Extend? = nil,
                 lang: String? = nil) {

        self.token = token
        self.units = units
        self.exclude = exclude
        self.extend = extend
        self.lang = lang
    }
}

public enum Unit: String {
    case us, si, ca, uk2, auto
}

public enum Exclude: String {
    case currently, minutely, hourly, daily, alerts, flags
}

public enum Extend: String {
    case hourly
}

Make Confiuration model properties public
Make Confiuration model properties public
