#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct HeaderResponse {
    #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
    pub action: Option<Action>,
    #[serde(rename = "cache_condition", skip_serializing_if = "Option::is_none")]
    pub cache_condition: Option<String>,
    #[serde(rename = "dst", skip_serializing_if = "Option::is_none")]
    pub dst: Option<String>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "regex", skip_serializing_if = "Option::is_none")]
    pub regex: Option<String>,
    #[serde(rename = "request_condition", skip_serializing_if = "Option::is_none")]
    pub request_condition: Option<String>,
    #[serde(rename = "response_condition", skip_serializing_if = "Option::is_none")]
    pub response_condition: Option<Box<String>>,
    #[serde(rename = "src", skip_serializing_if = "Option::is_none")]
    pub src: Option<String>,
    #[serde(rename = "substitution", skip_serializing_if = "Option::is_none")]
    pub substitution: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub _type: Option<Type>,
    #[serde(rename = "ignore_if_set", skip_serializing_if = "Option::is_none")]
    pub ignore_if_set: Option<String>,
    #[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
    pub priority: Option<String>,
    #[serde(rename = "service_id", skip_serializing_if = "Option::is_none")]
    pub service_id: Option<Box<String>>,
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<Box<String>>,
    #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    #[serde(rename = "deleted_at", skip_serializing_if = "Option::is_none")]
    pub deleted_at: Option<String>,
    #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
    pub updated_at: Option<String>,
}
impl HeaderResponse {
    pub fn new() -> HeaderResponse {
        HeaderResponse {
            action: None,
            cache_condition: None,
            dst: None,
            name: None,
            regex: None,
            request_condition: None,
            response_condition: None,
            src: None,
            substitution: None,
            _type: None,
            ignore_if_set: None,
            priority: None,
            service_id: None,
            version: None,
            created_at: None,
            deleted_at: None,
            updated_at: None,
        }
    }
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Action {
    #[serde(rename = "set")]
    Set,
    #[serde(rename = "append")]
    Append,
    #[serde(rename = "delete")]
    Delete,
    #[serde(rename = "regex")]
    Regex,
    #[serde(rename = "regex_repeat")]
    RegexRepeat,
}
impl Default for Action {
    fn default() -> Action {
        Self::Set
    }
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
    #[serde(rename = "request")]
    Request,
    #[serde(rename = "cache")]
    Cache,
    #[serde(rename = "response")]
    Response,
}
impl Default for Type {
    fn default() -> Type {
        Self::Request
    }
}