tapis-files 0.3.0

The Tapis Files API provides for management of file resources on Tapis systems
Documentation
/*
 * Tapis Files API
 *
 * The Tapis Files API provides for management of file resources on Tapis systems
 *
 * The version of the OpenAPI document: 1.8.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 NativeLinuxSetFaclRequest {
    #[serde(rename = "operation")]
    pub operation: Operation,
    /// Recursion may be set to physical (don't follow symlinks) or logical (follow symlinks), or none (don't recurse).
    #[serde(rename = "recursionMethod", skip_serializing_if = "Option::is_none")]
    pub recursion_method: Option<RecursionMethod>,
    /// specifies the actual acl string to set.  Multiple acls may be separated by  commas. Examples - user:myuser:rwx,group             group:mygroup:rw             user:myuser:rwx,group,group:mygroup:rw  
    #[serde(rename = "aclString")]
    pub acl_string: String,
}

impl NativeLinuxSetFaclRequest {
    pub fn new(operation: Operation, acl_string: String) -> NativeLinuxSetFaclRequest {
        NativeLinuxSetFaclRequest {
            operation,
            recursion_method: None,
            acl_string,
        }
    }
}

#[derive(
    Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum Operation {
    #[serde(rename = "ADD")]
    #[default]
    Add,
    #[serde(rename = "REMOVE")]
    Remove,
    #[serde(rename = "REMOVE_DEFAULT")]
    RemoveDefault,
    #[serde(rename = "REMOVE_ALL")]
    RemoveAll,
}

/// Recursion may be set to physical (don't follow symlinks) or logical (follow symlinks), or none (don't recurse).
#[derive(
    Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, Default,
)]
pub enum RecursionMethod {
    #[serde(rename = "NONE")]
    #[default]
    None,
    #[serde(rename = "PHYSICAL")]
    Physical,
    #[serde(rename = "LOGICAL")]
    Logical,
}