/*
 * Tapis Security API
 *
 * The Tapis Security API provides for management of Security Kernel (SK) role-based authorization and secrets resources.
 *
 * 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 SkRole {
    #[serde(rename = "tenant", skip_serializing_if = "Option::is_none")]
    pub tenant: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<models::RoleTypeEnum>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
    pub owner: Option<String>,
    #[serde(rename = "ownerTenant", skip_serializing_if = "Option::is_none")]
    pub owner_tenant: Option<String>,
    #[serde(rename = "created", skip_serializing_if = "Option::is_none")]
    pub created: Option<String>,
    #[serde(rename = "createdby", skip_serializing_if = "Option::is_none")]
    pub createdby: Option<String>,
    #[serde(rename = "createdbyTenant", skip_serializing_if = "Option::is_none")]
    pub createdby_tenant: Option<String>,
    #[serde(rename = "updated", skip_serializing_if = "Option::is_none")]
    pub updated: Option<String>,
    #[serde(rename = "updatedby", skip_serializing_if = "Option::is_none")]
    pub updatedby: Option<String>,
    #[serde(rename = "updatedbyTenant", skip_serializing_if = "Option::is_none")]
    pub updatedby_tenant: Option<String>,
    #[serde(rename = "hasChildren", skip_serializing_if = "Option::is_none")]
    pub has_children: Option<bool>,
}

impl SkRole {
    pub fn new() -> SkRole {
        SkRole {
            tenant: None,
            r#type: None,
            name: None,
            description: None,
            owner: None,
            owner_tenant: None,
            created: None,
            createdby: None,
            createdby_tenant: None,
            updated: None,
            updatedby: None,
            updatedby_tenant: None,
            has_children: None,
        }
    }
}
