use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReqPostSystem {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "systemType")]
pub system_type: models::SystemTypeEnum,
#[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(rename = "host")]
pub host: 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")]
pub default_authn_method: models::AuthnEnum,
#[serde(rename = "authnCredential", skip_serializing_if = "Option::is_none")]
pub authn_credential: Option<Box<models::ReqPostPutCredential>>,
#[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")]
pub can_exec: 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 = "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>,
}
impl ReqPostSystem {
pub fn new(
id: String,
system_type: models::SystemTypeEnum,
host: String,
default_authn_method: models::AuthnEnum,
can_exec: bool,
) -> ReqPostSystem {
ReqPostSystem {
id,
description: None,
system_type,
owner: None,
host,
enabled: None,
effective_user_id: None,
default_authn_method,
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,
can_run_batch: None,
enable_cmd_prefix: None,
allow_children: 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,
}
}
}