use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateInstanceRequest {
#[serde(rename = "ageGate", skip_serializing_if = "Option::is_none")]
pub age_gate: Option<bool>,
#[serde(rename = "calendarEntryId", skip_serializing_if = "Option::is_none")]
pub calendar_entry_id: Option<String>,
#[serde(rename = "canRequestInvite", skip_serializing_if = "Option::is_none")]
pub can_request_invite: Option<bool>,
#[serde(rename = "closedAt", skip_serializing_if = "Option::is_none")]
pub closed_at: Option<String>,
#[serde(rename = "contentSettings", skip_serializing_if = "Option::is_none")]
pub content_settings: Option<models::InstanceContentSettings>,
#[serde(
rename = "displayName",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<Option<String>>,
#[serde(rename = "groupAccessType", skip_serializing_if = "Option::is_none")]
pub group_access_type: Option<models::GroupAccessType>,
#[serde(rename = "hardClose", skip_serializing_if = "Option::is_none")]
pub hard_close: Option<bool>,
#[serde(
rename = "instancePersistenceEnabled",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub instance_persistence_enabled: Option<Option<bool>>,
#[serde(rename = "inviteOnly", skip_serializing_if = "Option::is_none")]
pub invite_only: Option<bool>,
#[serde(
rename = "ownerId",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub owner_id: Option<Option<String>>,
#[serde(
rename = "playerPersistenceEnabled",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub player_persistence_enabled: Option<Option<bool>>,
#[serde(rename = "queueEnabled", skip_serializing_if = "Option::is_none")]
pub queue_enabled: Option<bool>,
#[serde(rename = "region")]
pub region: models::InstanceRegion,
#[serde(rename = "roleIds", skip_serializing_if = "Option::is_none")]
pub role_ids: Option<Vec<String>>,
#[serde(rename = "type")]
pub r#type: models::InstanceType,
#[serde(rename = "worldId")]
pub world_id: String,
}
impl CreateInstanceRequest {
pub fn new(
region: models::InstanceRegion,
r#type: models::InstanceType,
world_id: String,
) -> CreateInstanceRequest {
CreateInstanceRequest {
age_gate: None,
calendar_entry_id: None,
can_request_invite: None,
closed_at: None,
content_settings: None,
display_name: None,
group_access_type: None,
hard_close: None,
instance_persistence_enabled: None,
invite_only: None,
owner_id: None,
player_persistence_enabled: None,
queue_enabled: None,
region,
role_ids: None,
r#type,
world_id,
}
}
}