use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TapisSystem {
#[serde(rename = "tenant", skip_serializing_if = "Option::is_none")]
pub tenant: Option<String>,
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "systemType", skip_serializing_if = "Option::is_none")]
pub system_type: Option<models::SystemTypeEnum>,
#[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(rename = "host", skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(rename = "effectiveUserId", skip_serializing_if = "Option::is_none")]
pub effective_user_id: Option<String>,
#[serde(rename = "defaultAuthnMethod", skip_serializing_if = "Option::is_none")]
pub default_authn_method: Option<models::AuthnEnum>,
#[serde(rename = "authnCredential", skip_serializing_if = "Option::is_none")]
pub authn_credential: Option<Box<models::Credential>>,
#[serde(rename = "bucketName", skip_serializing_if = "Option::is_none")]
pub bucket_name: Option<String>,
#[serde(rename = "rootDir", skip_serializing_if = "Option::is_none")]
pub root_dir: Option<String>,
#[serde(rename = "port", skip_serializing_if = "Option::is_none")]
pub port: Option<i32>,
#[serde(rename = "useProxy", skip_serializing_if = "Option::is_none")]
pub use_proxy: Option<bool>,
#[serde(rename = "proxyHost", skip_serializing_if = "Option::is_none")]
pub proxy_host: Option<String>,
#[serde(rename = "proxyPort", skip_serializing_if = "Option::is_none")]
pub proxy_port: Option<i32>,
#[serde(rename = "dtnSystemId", skip_serializing_if = "Option::is_none")]
pub dtn_system_id: Option<String>,
#[serde(rename = "canExec", skip_serializing_if = "Option::is_none")]
pub can_exec: Option<bool>,
#[serde(rename = "canRunBatch", skip_serializing_if = "Option::is_none")]
pub can_run_batch: Option<bool>,
#[serde(rename = "enableCmdPrefix", skip_serializing_if = "Option::is_none")]
pub enable_cmd_prefix: Option<bool>,
#[serde(rename = "allowChildren", skip_serializing_if = "Option::is_none")]
pub allow_children: Option<bool>,
#[serde(rename = "parentId", skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
#[serde(rename = "mpiCmd", skip_serializing_if = "Option::is_none")]
pub mpi_cmd: Option<String>,
#[serde(rename = "jobRuntimes", skip_serializing_if = "Option::is_none")]
pub job_runtimes: Option<Vec<models::JobRuntime>>,
#[serde(rename = "jobWorkingDir", skip_serializing_if = "Option::is_none")]
pub job_working_dir: Option<String>,
#[serde(rename = "jobEnvVariables", skip_serializing_if = "Option::is_none")]
pub job_env_variables: Option<Vec<models::KeyValuePair>>,
#[serde(rename = "jobMaxJobs", skip_serializing_if = "Option::is_none")]
pub job_max_jobs: Option<i32>,
#[serde(rename = "jobMaxJobsPerUser", skip_serializing_if = "Option::is_none")]
pub job_max_jobs_per_user: Option<i32>,
#[serde(rename = "batchScheduler", skip_serializing_if = "Option::is_none")]
pub batch_scheduler: Option<models::SchedulerTypeEnum>,
#[serde(rename = "batchLogicalQueues", skip_serializing_if = "Option::is_none")]
pub batch_logical_queues: Option<Vec<models::LogicalQueue>>,
#[serde(
rename = "batchDefaultLogicalQueue",
skip_serializing_if = "Option::is_none"
)]
pub batch_default_logical_queue: Option<String>,
#[serde(
rename = "batchSchedulerProfile",
skip_serializing_if = "Option::is_none"
)]
pub batch_scheduler_profile: Option<String>,
#[serde(rename = "jobCapabilities", skip_serializing_if = "Option::is_none")]
pub job_capabilities: Option<Vec<models::Capability>>,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(rename = "notes", skip_serializing_if = "Option::is_none")]
pub notes: Option<serde_json::Value>,
#[serde(rename = "uuid", skip_serializing_if = "Option::is_none")]
pub uuid: Option<uuid::Uuid>,
#[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
pub deleted: Option<bool>,
#[serde(rename = "created", skip_serializing_if = "Option::is_none")]
pub created: Option<String>,
#[serde(rename = "updated", skip_serializing_if = "Option::is_none")]
pub updated: Option<String>,
#[serde(rename = "hasCredentials", skip_serializing_if = "Option::is_none")]
pub has_credentials: Option<bool>,
#[serde(rename = "isPublic", skip_serializing_if = "Option::is_none")]
pub is_public: Option<bool>,
#[serde(
rename = "isDynamicEffectiveUser",
skip_serializing_if = "Option::is_none"
)]
pub is_dynamic_effective_user: Option<bool>,
#[serde(rename = "sharedWithUsers", skip_serializing_if = "Option::is_none")]
pub shared_with_users: Option<Vec<String>>,
}
impl TapisSystem {
pub fn new() -> TapisSystem {
TapisSystem {
tenant: None,
id: None,
description: None,
system_type: None,
owner: None,
host: None,
enabled: None,
effective_user_id: None,
default_authn_method: None,
authn_credential: None,
bucket_name: None,
root_dir: None,
port: None,
use_proxy: None,
proxy_host: None,
proxy_port: None,
dtn_system_id: None,
can_exec: None,
can_run_batch: None,
enable_cmd_prefix: None,
allow_children: None,
parent_id: None,
mpi_cmd: None,
job_runtimes: None,
job_working_dir: None,
job_env_variables: None,
job_max_jobs: None,
job_max_jobs_per_user: None,
batch_scheduler: None,
batch_logical_queues: None,
batch_default_logical_queue: None,
batch_scheduler_profile: None,
job_capabilities: None,
tags: None,
notes: None,
uuid: None,
deleted: None,
created: None,
updated: None,
has_credentials: None,
is_public: None,
is_dynamic_effective_user: None,
shared_with_users: None,
}
}
}