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

import Foundation

public struct GenerateVideoCoverRequest: Codable, Equatable {
    public var clipId: String
    public var genType: GenType?
    public var imageUrl: String?
    public var prompt: String?
    public var resolution: Resolution?

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

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

        public static let image2Video = Self(rawValue: "image_2_video")
        public static let text2Video = Self(rawValue: "text_2_video")
    }

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

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

        public static let _512p = Self(rawValue: "512P")
        public static let _768p = Self(rawValue: "768P")
        public static let _1080p = Self(rawValue: "1080P")
    }

    public init(clipId: String, genType: GenType? = nil, imageUrl: String? = nil, prompt: String? = nil, resolution: Resolution? = nil) {
        self.clipId = clipId
        self.genType = genType
        self.imageUrl = imageUrl
        self.prompt = prompt
        self.resolution = resolution
    }
}
