use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReposCreateForAuthenticatedUserRequest {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "homepage", skip_serializing_if = "Option::is_none")]
pub homepage: Option<String>,
#[serde(rename = "private", skip_serializing_if = "Option::is_none")]
pub private: Option<bool>,
#[serde(rename = "has_issues", skip_serializing_if = "Option::is_none")]
pub has_issues: Option<bool>,
#[serde(rename = "has_projects", skip_serializing_if = "Option::is_none")]
pub has_projects: Option<bool>,
#[serde(rename = "has_wiki", skip_serializing_if = "Option::is_none")]
pub has_wiki: Option<bool>,
#[serde(rename = "has_discussions", skip_serializing_if = "Option::is_none")]
pub has_discussions: Option<bool>,
#[serde(rename = "team_id", skip_serializing_if = "Option::is_none")]
pub team_id: Option<i32>,
#[serde(rename = "auto_init", skip_serializing_if = "Option::is_none")]
pub auto_init: Option<bool>,
#[serde(rename = "gitignore_template", skip_serializing_if = "Option::is_none")]
pub gitignore_template: Option<String>,
#[serde(rename = "license_template", skip_serializing_if = "Option::is_none")]
pub license_template: Option<String>,
#[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
pub allow_squash_merge: Option<bool>,
#[serde(rename = "allow_merge_commit", skip_serializing_if = "Option::is_none")]
pub allow_merge_commit: Option<bool>,
#[serde(rename = "allow_rebase_merge", skip_serializing_if = "Option::is_none")]
pub allow_rebase_merge: Option<bool>,
#[serde(rename = "allow_auto_merge", skip_serializing_if = "Option::is_none")]
pub allow_auto_merge: Option<bool>,
#[serde(rename = "delete_branch_on_merge", skip_serializing_if = "Option::is_none")]
pub delete_branch_on_merge: Option<bool>,
#[serde(rename = "squash_merge_commit_title", skip_serializing_if = "Option::is_none")]
pub squash_merge_commit_title: Option<SquashMergeCommitTitle>,
#[serde(rename = "squash_merge_commit_message", skip_serializing_if = "Option::is_none")]
pub squash_merge_commit_message: Option<SquashMergeCommitMessage>,
#[serde(rename = "merge_commit_title", skip_serializing_if = "Option::is_none")]
pub merge_commit_title: Option<MergeCommitTitle>,
#[serde(rename = "merge_commit_message", skip_serializing_if = "Option::is_none")]
pub merge_commit_message: Option<MergeCommitMessage>,
#[serde(rename = "has_downloads", skip_serializing_if = "Option::is_none")]
pub has_downloads: Option<bool>,
#[serde(rename = "is_template", skip_serializing_if = "Option::is_none")]
pub is_template: Option<bool>,
}
impl ReposCreateForAuthenticatedUserRequest {
pub fn new(name: String) -> ReposCreateForAuthenticatedUserRequest {
ReposCreateForAuthenticatedUserRequest {
name,
description: None,
homepage: None,
private: None,
has_issues: None,
has_projects: None,
has_wiki: None,
has_discussions: None,
team_id: None,
auto_init: None,
gitignore_template: None,
license_template: None,
allow_squash_merge: None,
allow_merge_commit: None,
allow_rebase_merge: None,
allow_auto_merge: None,
delete_branch_on_merge: None,
squash_merge_commit_title: None,
squash_merge_commit_message: None,
merge_commit_title: None,
merge_commit_message: None,
has_downloads: None,
is_template: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SquashMergeCommitTitle {
#[serde(rename = "PR_TITLE")]
PrTitle,
#[serde(rename = "COMMIT_OR_PR_TITLE")]
CommitOrPrTitle,
}
impl Default for SquashMergeCommitTitle {
fn default() -> SquashMergeCommitTitle {
Self::PrTitle
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SquashMergeCommitMessage {
#[serde(rename = "PR_BODY")]
PrBody,
#[serde(rename = "COMMIT_MESSAGES")]
CommitMessages,
#[serde(rename = "BLANK")]
Blank,
}
impl Default for SquashMergeCommitMessage {
fn default() -> SquashMergeCommitMessage {
Self::PrBody
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MergeCommitTitle {
#[serde(rename = "PR_TITLE")]
PrTitle,
#[serde(rename = "MERGE_MESSAGE")]
MergeMessage,
}
impl Default for MergeCommitTitle {
fn default() -> MergeCommitTitle {
Self::PrTitle
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MergeCommitMessage {
#[serde(rename = "PR_BODY")]
PrBody,
#[serde(rename = "PR_TITLE")]
PrTitle,
#[serde(rename = "BLANK")]
Blank,
}
impl Default for MergeCommitMessage {
fn default() -> MergeCommitMessage {
Self::PrBody
}
}