use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RepositoryRule {
RepositoryRuleCreation(Box<models::RepositoryRuleCreation>),
RepositoryRuleUpdate(Box<models::RepositoryRuleUpdate>),
RepositoryRuleDeletion(Box<models::RepositoryRuleDeletion>),
RepositoryRuleRequiredLinearHistory(Box<models::RepositoryRuleRequiredLinearHistory>),
RepositoryRuleRequiredDeployments(Box<models::RepositoryRuleRequiredDeployments>),
RepositoryRuleRequiredSignatures(Box<models::RepositoryRuleRequiredSignatures>),
RepositoryRulePullRequest(Box<models::RepositoryRulePullRequest>),
RepositoryRuleRequiredStatusChecks(Box<models::RepositoryRuleRequiredStatusChecks>),
RepositoryRuleNonFastForward(Box<models::RepositoryRuleNonFastForward>),
RepositoryRuleCommitMessagePattern(Box<models::RepositoryRuleCommitMessagePattern>),
RepositoryRuleCommitAuthorEmailPattern(Box<models::RepositoryRuleCommitAuthorEmailPattern>),
RepositoryRuleCommitterEmailPattern(Box<models::RepositoryRuleCommitterEmailPattern>),
RepositoryRuleBranchNamePattern(Box<models::RepositoryRuleBranchNamePattern>),
RepositoryRuleTagNamePattern(Box<models::RepositoryRuleTagNamePattern>),
FilePathRestriction(Box<models::FilePathRestriction>),
MaxFilePathLength(Box<models::MaxFilePathLength>),
FileExtensionRestriction(Box<models::FileExtensionRestriction>),
MaxFileSize(Box<models::MaxFileSize>),
RepositoryRuleWorkflows(Box<models::RepositoryRuleWorkflows>),
}
impl Default for RepositoryRule {
fn default() -> Self {
Self::RepositoryRuleCreation(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "creation")]
Creation,
#[serde(rename = "update")]
Update,
#[serde(rename = "deletion")]
Deletion,
#[serde(rename = "required_linear_history")]
RequiredLinearHistory,
#[serde(rename = "required_deployments")]
RequiredDeployments,
#[serde(rename = "required_signatures")]
RequiredSignatures,
#[serde(rename = "pull_request")]
PullRequest,
#[serde(rename = "required_status_checks")]
RequiredStatusChecks,
#[serde(rename = "non_fast_forward")]
NonFastForward,
#[serde(rename = "commit_message_pattern")]
CommitMessagePattern,
#[serde(rename = "commit_author_email_pattern")]
CommitAuthorEmailPattern,
#[serde(rename = "committer_email_pattern")]
CommitterEmailPattern,
#[serde(rename = "branch_name_pattern")]
BranchNamePattern,
#[serde(rename = "tag_name_pattern")]
TagNamePattern,
#[serde(rename = "file_path_restriction")]
FilePathRestriction,
#[serde(rename = "max_file_path_length")]
MaxFilePathLength,
#[serde(rename = "file_extension_restriction")]
FileExtensionRestriction,
#[serde(rename = "max_file_size")]
MaxFileSize,
#[serde(rename = "workflows")]
Workflows,
}
impl Default for Type {
fn default() -> Type {
Self::Creation
}
}