use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct BulkEditShareableEntityRequest {
#[serde(rename = "action")]
pub action: Action,
#[serde(rename = "changeOwnerDetails", skip_serializing_if = "Option::is_none")]
pub change_owner_details: Option<Box<models::BulkChangeOwnerDetails>>,
#[serde(rename = "entityIds")]
pub entity_ids: Vec<i64>,
#[serde(rename = "extendAdminPermissions", skip_serializing_if = "Option::is_none")]
pub extend_admin_permissions: Option<bool>,
#[serde(rename = "permissionDetails", skip_serializing_if = "Option::is_none")]
pub permission_details: Option<Box<models::PermissionDetails>>,
}
impl BulkEditShareableEntityRequest {
pub fn new(action: Action, entity_ids: Vec<i64>) -> BulkEditShareableEntityRequest {
BulkEditShareableEntityRequest {
action,
change_owner_details: None,
entity_ids,
extend_admin_permissions: None,
permission_details: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Action {
#[serde(rename = "changeOwner")]
ChangeOwner,
#[serde(rename = "changePermission")]
ChangePermission,
#[serde(rename = "addPermission")]
AddPermission,
#[serde(rename = "removePermission")]
RemovePermission,
}
impl Default for Action {
fn default() -> Action {
Self::ChangeOwner
}
}