// Generated by Create API
// https://github.com/CreateAPI/CreateAPI

import Foundation

public struct BannerCtaSchema: Codable, Equatable {
    public var action: String?
    public var backgroundColor: String?
    public var icon: String?
    public var iconName: String?
    public var iconSize: IconSize?
    public var text: LocalStringSchema?
    public var url: String?

    public struct IconSize: RawRepresentable, Codable, Equatable {
        public let rawValue: String

        public init(rawValue: String) {
            self.rawValue = rawValue
        }

        public static let xSmall = Self(rawValue: "XSmall")
        public static let small = Self(rawValue: "Small")
        public static let medium = Self(rawValue: "Medium")
        public static let large = Self(rawValue: "Large")
    }

    public init(action: String? = nil, backgroundColor: String? = nil, icon: String? = nil, iconName: String? = nil, iconSize: IconSize? = nil, text: LocalStringSchema? = nil, url: String? = nil) {
        self.action = action
        self.backgroundColor = backgroundColor
        self.icon = icon
        self.iconName = iconName
        self.iconSize = iconSize
        self.text = text
        self.url = url
    }
}
