//
// BuiltCampaignControllerActionDeclineResponse.swift
//
// Generated by swagger-codegen
// https://github.com/swagger-api/swagger-codegen
//

import Foundation



public struct BuiltCampaignControllerActionDeclineResponse: Codable {

    public enum ActionType: String, Codable { 
        case email = "EMAIL"
        case schedule = "SCHEDULE"
        case signal = "SIGNAL"
        case incentivize = "INCENTIVIZE"
        case shareEvent = "SHARE_EVENT"
        case fireAsPerson = "FIRE_AS_PERSON"
        case dataIntelligence = "DATA_INTELLIGENCE"
        case approve = "APPROVE"
        case decline = "DECLINE"
        case earnReward = "EARN_REWARD"
        case fulfillReward = "FULFILL_REWARD"
        case redeemReward = "REDEEM_REWARD"
        case cancelReward = "CANCEL_REWARD"
        case revokeReward = "REVOKE_REWARD"
        case stepSignal = "STEP_SIGNAL"
        case webhook = "WEBHOOK"
        case expression = "EXPRESSION"
    }
    public enum Quality: String, Codable { 
        case high = "HIGH"
        case low = "LOW"
        case always = "ALWAYS"
    }
    public var actionId: String?
    public var actionType: ActionType?
    public var quality: Quality?
    public var componentReferences: [CampaignComponentReferenceResponse]?
    public var legacyActionId: String?
    public var partnerEventId: String?
    public var eventType: String?
    public var note: String?
    public var causeType: String?
    public var pollingId: String?
    public var pollingName: String?

    public init(actionId: String? = nil, actionType: ActionType? = nil, quality: Quality? = nil, componentReferences: [CampaignComponentReferenceResponse]? = nil, legacyActionId: String? = nil, partnerEventId: String? = nil, eventType: String? = nil, note: String? = nil, causeType: String? = nil, pollingId: String? = nil, pollingName: String? = nil) {
        self.actionId = actionId
        self.actionType = actionType
        self.quality = quality
        self.componentReferences = componentReferences
        self.legacyActionId = legacyActionId
        self.partnerEventId = partnerEventId
        self.eventType = eventType
        self.note = note
        self.causeType = causeType
        self.pollingId = pollingId
        self.pollingName = pollingName
    }

    public enum CodingKeys: String, CodingKey { 
        case actionId = "action_id"
        case actionType = "action_type"
        case quality
        case componentReferences = "component_references"
        case legacyActionId = "legacy_action_id"
        case partnerEventId = "partner_event_id"
        case eventType = "event_type"
        case note
        case causeType = "cause_type"
        case pollingId = "polling_id"
        case pollingName = "polling_name"
    }

}
