use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MigrationsStartForAuthenticatedUserRequest {
#[serde(rename = "lock_repositories", skip_serializing_if = "Option::is_none")]
pub lock_repositories: Option<bool>,
#[serde(rename = "exclude_metadata", skip_serializing_if = "Option::is_none")]
pub exclude_metadata: Option<bool>,
#[serde(rename = "exclude_git_data", skip_serializing_if = "Option::is_none")]
pub exclude_git_data: Option<bool>,
#[serde(rename = "exclude_attachments", skip_serializing_if = "Option::is_none")]
pub exclude_attachments: Option<bool>,
#[serde(rename = "exclude_releases", skip_serializing_if = "Option::is_none")]
pub exclude_releases: Option<bool>,
#[serde(rename = "exclude_owner_projects", skip_serializing_if = "Option::is_none")]
pub exclude_owner_projects: Option<bool>,
#[serde(rename = "org_metadata_only", skip_serializing_if = "Option::is_none")]
pub org_metadata_only: Option<bool>,
#[serde(rename = "exclude", skip_serializing_if = "Option::is_none")]
pub exclude: Option<Vec<Exclude>>,
#[serde(rename = "repositories")]
pub repositories: Vec<String>,
}
impl MigrationsStartForAuthenticatedUserRequest {
pub fn new(repositories: Vec<String>) -> MigrationsStartForAuthenticatedUserRequest {
MigrationsStartForAuthenticatedUserRequest {
lock_repositories: None,
exclude_metadata: None,
exclude_git_data: None,
exclude_attachments: None,
exclude_releases: None,
exclude_owner_projects: None,
org_metadata_only: None,
exclude: None,
repositories,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Exclude {
#[serde(rename = "repositories")]
Repositories,
}
impl Default for Exclude {
fn default() -> Exclude {
Self::Repositories
}
}