winterbaume-codebuild 0.1.0

CodeBuild service implementation for winterbaume
Documentation
use chrono::{DateTime, Utc};

#[derive(Debug, Clone)]
pub struct ReportGroup {
    pub arn: String,
    pub name: String,
    pub r#type: String,
    pub export_config_type: Option<String>,
    pub tags: Vec<Tag>,
    pub created: DateTime<Utc>,
    pub last_modified: DateTime<Utc>,
    pub status: String,
}

#[derive(Debug, Clone)]
pub struct Tag {
    pub key: String,
    pub value: String,
}

#[derive(Debug, Clone)]
pub struct Webhook {
    pub project_name: String,
    pub url: String,
    pub branch_filter: Option<String>,
    pub build_type: Option<String>,
    pub secret: Option<String>,
}

#[derive(Debug, Clone)]
pub struct SourceCredential {
    pub arn: String,
    pub server_type: String,
    pub auth_type: String,
    pub resource: Option<String>,
}

#[derive(Debug, Clone)]
pub struct Project {
    pub name: String,
    pub arn: String,
    pub description: String,
    pub source_type: String,
    pub source_location: String,
    pub artifact_type: String,
    pub artifact_location: Option<String>,
    pub environment_type: String,
    pub environment_image: String,
    pub environment_compute_type: String,
    pub service_role: String,
    pub tags: Vec<Tag>,
    pub created: DateTime<Utc>,
    pub last_modified: DateTime<Utc>,
}

#[derive(Debug, Clone)]
pub struct BuildPhase {
    pub phase_type: String,
    pub phase_status: Option<String>,
    pub start_time: f64,
    pub end_time: Option<f64>,
    pub duration_in_seconds: Option<i64>,
}

#[derive(Debug, Clone)]
pub struct Build {
    pub id: String,
    pub arn: String,
    pub project_name: String,
    pub build_status: String,
    pub current_phase: String,
    pub source_type: String,
    pub source_location: String,
    pub source_version: String,
    pub artifact_type: String,
    pub artifact_location: Option<String>,
    pub environment_type: String,
    pub environment_image: String,
    pub environment_compute_type: String,
    pub service_role: String,
    pub start_time: DateTime<Utc>,
    pub end_time: Option<DateTime<Utc>>,
    pub build_number: i64,
    pub phases: Vec<BuildPhase>,
}