use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct Deployment {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "$createdAt")]
pub created_at: String,
#[serde(rename = "$updatedAt")]
pub updated_at: String,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "resourceId")]
pub resource_id: String,
#[serde(rename = "resourceType")]
pub resource_type: String,
#[serde(rename = "entrypoint")]
pub entrypoint: String,
#[serde(rename = "sourceSize")]
pub source_size: i64,
#[serde(rename = "buildSize")]
pub build_size: i64,
#[serde(rename = "totalSize")]
pub total_size: i64,
#[serde(rename = "buildId")]
pub build_id: String,
#[serde(rename = "activate")]
pub activate: bool,
#[serde(rename = "screenshotLight")]
pub screenshot_light: String,
#[serde(rename = "screenshotDark")]
pub screenshot_dark: String,
#[serde(rename = "status")]
pub status: crate::enums::DeploymentStatus,
#[serde(rename = "buildLogs")]
pub build_logs: String,
#[serde(rename = "buildDuration")]
pub build_duration: i64,
#[serde(rename = "providerRepositoryName")]
pub provider_repository_name: String,
#[serde(rename = "providerRepositoryOwner")]
pub provider_repository_owner: String,
#[serde(rename = "providerRepositoryUrl")]
pub provider_repository_url: String,
#[serde(rename = "providerCommitHash")]
pub provider_commit_hash: String,
#[serde(rename = "providerCommitAuthorUrl")]
pub provider_commit_author_url: String,
#[serde(rename = "providerCommitAuthor")]
pub provider_commit_author: String,
#[serde(rename = "providerCommitMessage")]
pub provider_commit_message: String,
#[serde(rename = "providerCommitUrl")]
pub provider_commit_url: String,
#[serde(rename = "providerBranch")]
pub provider_branch: String,
#[serde(rename = "providerBranchUrl")]
pub provider_branch_url: String,
}
impl Deployment {
pub fn id(&self) -> &String {
&self.id
}
pub fn created_at(&self) -> &String {
&self.created_at
}
pub fn updated_at(&self) -> &String {
&self.updated_at
}
pub fn r#type(&self) -> &String {
&self.r#type
}
pub fn resource_id(&self) -> &String {
&self.resource_id
}
pub fn resource_type(&self) -> &String {
&self.resource_type
}
pub fn entrypoint(&self) -> &String {
&self.entrypoint
}
pub fn source_size(&self) -> &i64 {
&self.source_size
}
pub fn build_size(&self) -> &i64 {
&self.build_size
}
pub fn total_size(&self) -> &i64 {
&self.total_size
}
pub fn build_id(&self) -> &String {
&self.build_id
}
pub fn activate(&self) -> &bool {
&self.activate
}
pub fn screenshot_light(&self) -> &String {
&self.screenshot_light
}
pub fn screenshot_dark(&self) -> &String {
&self.screenshot_dark
}
pub fn status(&self) -> &crate::enums::DeploymentStatus {
&self.status
}
pub fn build_logs(&self) -> &String {
&self.build_logs
}
pub fn build_duration(&self) -> &i64 {
&self.build_duration
}
pub fn provider_repository_name(&self) -> &String {
&self.provider_repository_name
}
pub fn provider_repository_owner(&self) -> &String {
&self.provider_repository_owner
}
pub fn provider_repository_url(&self) -> &String {
&self.provider_repository_url
}
pub fn provider_commit_hash(&self) -> &String {
&self.provider_commit_hash
}
pub fn provider_commit_author_url(&self) -> &String {
&self.provider_commit_author_url
}
pub fn provider_commit_author(&self) -> &String {
&self.provider_commit_author
}
pub fn provider_commit_message(&self) -> &String {
&self.provider_commit_message
}
pub fn provider_commit_url(&self) -> &String {
&self.provider_commit_url
}
pub fn provider_branch(&self) -> &String {
&self.provider_branch
}
pub fn provider_branch_url(&self) -> &String {
&self.provider_branch_url
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_deployment_creation() {
let _model = <Deployment as Default>::default();
let _ = _model.id();
let _ = _model.created_at();
let _ = _model.updated_at();
let _ = _model.r#type();
let _ = _model.resource_id();
let _ = _model.resource_type();
let _ = _model.entrypoint();
let _ = _model.source_size();
let _ = _model.build_size();
let _ = _model.total_size();
let _ = _model.build_id();
let _ = _model.activate();
let _ = _model.screenshot_light();
let _ = _model.screenshot_dark();
let _ = _model.status();
let _ = _model.build_logs();
let _ = _model.build_duration();
let _ = _model.provider_repository_name();
let _ = _model.provider_repository_owner();
let _ = _model.provider_repository_url();
let _ = _model.provider_commit_hash();
let _ = _model.provider_commit_author_url();
let _ = _model.provider_commit_author();
let _ = _model.provider_commit_message();
let _ = _model.provider_commit_url();
let _ = _model.provider_branch();
let _ = _model.provider_branch_url();
}
#[test]
fn test_deployment_serialization() {
let model = <Deployment as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<Deployment, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}