use serde::{Deserialize, Serialize};
use crate::google_rest_apis::compute_v1::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Condition {
#[serde(rename = "iam", skip_serializing_if = "Option::is_none")]
pub iam: Option<Iam>,
#[serde(rename = "op", skip_serializing_if = "Option::is_none")]
pub op: Option<Op>,
#[serde(rename = "svc", skip_serializing_if = "Option::is_none")]
pub svc: Option<String>,
#[serde(rename = "sys", skip_serializing_if = "Option::is_none")]
pub sys: Option<Sys>,
#[serde(rename = "values", skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
impl Condition {
pub fn new() -> Condition {
Condition {
iam: None,
op: None,
svc: None,
sys: None,
values: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Iam {
#[serde(rename = "APPROVER")]
Approver,
#[serde(rename = "ATTRIBUTION")]
Attribution,
#[serde(rename = "AUTHORITY")]
Authority,
#[serde(rename = "CREDENTIALS_TYPE")]
CredentialsType,
#[serde(rename = "CREDS_ASSERTION")]
CredsAssertion,
#[serde(rename = "JUSTIFICATION_TYPE")]
JustificationType,
#[serde(rename = "NO_ATTR")]
NoAttr,
#[serde(rename = "SECURITY_REALM")]
SecurityRealm,
}
impl Default for Iam {
fn default() -> Iam {
Self::Approver
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Op {
#[serde(rename = "DISCHARGED")]
Discharged,
#[serde(rename = "EQUALS")]
Equals,
#[serde(rename = "IN")]
In,
#[serde(rename = "NOT_EQUALS")]
NotEquals,
#[serde(rename = "NOT_IN")]
NotIn,
#[serde(rename = "NO_OP")]
NoOp,
}
impl Default for Op {
fn default() -> Op {
Self::Discharged
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Sys {
#[serde(rename = "IP")]
Ip,
#[serde(rename = "NAME")]
Name,
#[serde(rename = "NO_ATTR")]
NoAttr,
#[serde(rename = "REGION")]
Region,
#[serde(rename = "SERVICE")]
Service,
}
impl Default for Sys {
fn default() -> Sys {
Self::Ip
}
}