tapis-systems 0.3.0

The Tapis Systems API provides for management of Tapis Systems including permissions, credentials and Scheduler Profiles.
Documentation
/*
 * Tapis Systems API
 *
 * The Tapis Systems API provides for management of Tapis Systems including permissions, credentials and Scheduler Profiles.
 *
 * The version of the OpenAPI document: 25Q4.2
 * Contact: cicsupport@tacc.utexas.edu
 * Generated by: https://openapi-generator.tech
 */

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>,
    /// Short descriptive name for the system that is unique within the tenant.
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// Optional more verbose description.
    #[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>,
    /// FQDN, IP address, Globus endpoint ID or Globus collection ID.
    #[serde(rename = "host", skip_serializing_if = "Option::is_none")]
    pub host: Option<String>,
    /// Indicates if system is currently considered active and available for use.
    #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
    pub enabled: Option<bool>,
    /// Username to use when accessing the system. A specific user (such as a service account) or the dynamic user ``${apiUserId}``.
    #[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>>,
    /// Name of the bucket for an S3 type system.
    #[serde(rename = "bucketName", skip_serializing_if = "Option::is_none")]
    pub bucket_name: Option<String>,
    /// Effective root directory to be used when listing files or moving files to and from the system.
    #[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>,
    /// An alternate system to use as a Data Transfer Node (DTN) during job execution.
    #[serde(rename = "dtnSystemId", skip_serializing_if = "Option::is_none")]
    pub dtn_system_id: Option<String>,
    /// Indicates if system can be used to execute jobs.
    #[serde(rename = "canExec", skip_serializing_if = "Option::is_none")]
    pub can_exec: Option<bool>,
    /// Indicates if system supports running jobs using a batch scheduler.
    #[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>,
    /// Indicates if system allows for the creation of child systems.
    #[serde(rename = "allowChildren", skip_serializing_if = "Option::is_none")]
    pub allow_children: Option<bool>,
    /// Parent system associated with this child system.
    #[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,
        }
    }
}