use crate::framework::response::ApiResult;
use serde::Deserialize;
pub mod delete;
pub mod get;
pub mod patch;
pub mod post;
pub mod put;
pub use delete::{AppDelete, AppDisableAcm, AppWebhookDelete, SNIDelete, SSLDelete};
pub use get::{
AccountAppList, AppDetails, AppFeatureDetails, AppFeatureList, AppList, AppSetupDetails,
AppWebhookDeliveryDetails, AppWebhookDeliveryList, AppWebhookDetails, AppWebhookList,
SNIDetails, SNIList, SSLDetails, SSLList, WebhookEventDetails, WebhookEventList,
};
pub use patch::{
AppFeatureUpdate, AppFeatureUpdateParams, AppRefreshAcm, AppUpdate, AppUpdateParams,
AppWebhookUpdate, AppWebhookUpdateParams, SNIUpdate, SNIUpdateParams, SSLUpdate,
SSLUpdateParams,
};
pub use post::{
AppCreate, AppCreateParams, AppEnableAcm, AppSetupCreate, AppSetupCreateParams,
AppWebhookCreate, AppWebhookCreateParams, SNICreate, SNICreateParams, SSLCreate,
SSLCreateParams,
};
impl ApiResult for App {}
impl ApiResult for Vec<App> {}
impl ApiResult for AppFeature {}
impl ApiResult for Vec<AppFeature> {}
impl ApiResult for AppWebhook {}
impl ApiResult for Vec<AppWebhook> {}
impl ApiResult for AppWebhookDelivery {}
impl ApiResult for Vec<AppWebhookDelivery> {}
impl ApiResult for AppSetup {}
impl ApiResult for Vec<AppSetup> {}
impl ApiResult for SNI {}
impl ApiResult for Vec<SNI> {}
impl ApiResult for SSL {}
impl ApiResult for Vec<SSL> {}
impl ApiResult for WebhookEvent {}
impl ApiResult for Vec<WebhookEvent> {}
pub use app_setup::AppSetup;
pub use sni_endpoints::SNI;
pub use ssl_endpoints::SSL;
pub use webhook_event::WebhookEvent;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct App {
pub acm: bool,
pub archived_at: Option<String>,
pub buildpack_provided_description: Option<String>,
pub build_stack: BuildStack,
pub created_at: String,
pub git_url: String,
pub id: String,
pub internal_routing: Option<bool>,
pub maintenance: bool,
pub name: String,
pub owner: Owner,
pub organization: Option<Organization>,
pub team: Option<Team>,
pub region: Region,
pub released_at: Option<String>,
pub repo_size: Option<i64>,
pub slug_size: Option<i64>,
pub space: Option<Space>,
pub stack: Stack,
pub updated_at: String,
pub web_url: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct BuildStack {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Owner {
pub email: String,
pub id: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Organization {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Team {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Region {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Space {
pub id: String,
pub name: String,
pub shield: bool,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Stack {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppFeature {
pub created_at: String,
pub description: String,
pub doc_url: String,
pub enabled: bool,
pub id: String,
pub name: String,
pub state: String,
pub updated_at: String,
pub display_name: Option<String>,
pub feedback_email: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppWebhook {
pub app: WebhookApp,
pub created_at: String,
pub id: String,
pub include: Vec<String>,
pub level: String,
pub updated_at: String,
pub url: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct WebhookApp {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppWebhookDelivery {
pub created_at: String,
pub event: WebhookDeliveryEvent,
pub id: String,
pub num_attempts: i64,
pub next_attempt_at: Option<String>,
pub last_attempt: Option<WebhookDeliveryLastAttempt>,
pub status: String,
pub updated_at: String,
pub webhook: WebhookDeliveryWebhook,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct WebhookDeliveryEvent {
pub id: String,
pub include: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct WebhookDeliveryLastAttempt {
pub id: String,
pub code: Option<i64>,
pub error_class: Option<String>,
pub status: String,
pub created_at: String,
pub updated_at: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct WebhookDeliveryWebhook {
pub id: String,
pub level: String,
}
mod app_setup {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct AppSetup {
pub id: String,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub status: String,
pub failure_message: Option<String>,
pub app: App,
pub build: Option<Build>,
pub manifest_errors: Vec<String>,
pub postdeploy: Option<Postdeploy>,
pub resolved_success_url: Option<String>,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct App {
pub id: String,
pub name: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Build {
pub id: String,
pub status: String,
pub output_stream_url: String,
}
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Postdeploy {
pub output: String,
pub exit_code: i64,
}
}
mod sni_endpoints {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct SNI {
pub certificate_chain: String,
pub cname: String,
pub created_at: DateTime<Utc>,
pub id: String,
pub name: String,
pub updated_at: DateTime<Utc>,
}
}
mod ssl_endpoints {
use chrono::offset::Utc;
use chrono::DateTime;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct SSL {
pub app: App,
pub certificate_chain: String,
pub cname: String,
pub created_at: DateTime<Utc>,
pub id: String,
pub name: String,
pub updated_at: DateTime<Utc>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct App {
pub id: String,
pub name: String,
}
}
mod webhook_event {
use chrono::offset::Utc;
use chrono::DateTime;
use serde_json::Value;
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct WebhookEvent {
pub created_at: DateTime<Utc>,
pub id: String,
pub include: String,
pub payload: Payload,
pub updated_at: DateTime<Utc>,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Payload {
pub action: String,
pub actor: Actor,
pub data: Value,
pub previous_data: Value,
pub resource: String,
pub version: String,
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct Actor {
pub email: String,
pub id: String,
}
}