use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct Function {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "$createdAt")]
pub created_at: String,
#[serde(rename = "$updatedAt")]
pub updated_at: String,
#[serde(rename = "execute")]
pub execute: Vec<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "enabled")]
pub enabled: bool,
#[serde(rename = "live")]
pub live: bool,
#[serde(rename = "logging")]
pub logging: bool,
#[serde(rename = "runtime")]
pub runtime: String,
#[serde(rename = "deploymentRetention")]
pub deployment_retention: i64,
#[serde(rename = "deploymentId")]
pub deployment_id: String,
#[serde(rename = "deploymentCreatedAt")]
pub deployment_created_at: String,
#[serde(rename = "latestDeploymentId")]
pub latest_deployment_id: String,
#[serde(rename = "latestDeploymentCreatedAt")]
pub latest_deployment_created_at: String,
#[serde(rename = "latestDeploymentStatus")]
pub latest_deployment_status: String,
#[serde(rename = "scopes")]
pub scopes: Vec<String>,
#[serde(rename = "vars")]
pub vars: Vec<crate::models::Variable>,
#[serde(rename = "events")]
pub events: Vec<String>,
#[serde(rename = "schedule")]
pub schedule: String,
#[serde(rename = "timeout")]
pub timeout: i64,
#[serde(rename = "entrypoint")]
pub entrypoint: String,
#[serde(rename = "commands")]
pub commands: String,
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "installationId")]
pub installation_id: String,
#[serde(rename = "providerRepositoryId")]
pub provider_repository_id: String,
#[serde(rename = "providerBranch")]
pub provider_branch: String,
#[serde(rename = "providerRootDirectory")]
pub provider_root_directory: String,
#[serde(rename = "providerSilentMode")]
pub provider_silent_mode: bool,
#[serde(rename = "buildSpecification")]
pub build_specification: String,
#[serde(rename = "runtimeSpecification")]
pub runtime_specification: String,
}
impl Function {
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 execute(&self) -> &Vec<String> {
&self.execute
}
pub fn name(&self) -> &String {
&self.name
}
pub fn enabled(&self) -> &bool {
&self.enabled
}
pub fn live(&self) -> &bool {
&self.live
}
pub fn logging(&self) -> &bool {
&self.logging
}
pub fn runtime(&self) -> &String {
&self.runtime
}
pub fn deployment_retention(&self) -> &i64 {
&self.deployment_retention
}
pub fn deployment_id(&self) -> &String {
&self.deployment_id
}
pub fn deployment_created_at(&self) -> &String {
&self.deployment_created_at
}
pub fn latest_deployment_id(&self) -> &String {
&self.latest_deployment_id
}
pub fn latest_deployment_created_at(&self) -> &String {
&self.latest_deployment_created_at
}
pub fn latest_deployment_status(&self) -> &String {
&self.latest_deployment_status
}
pub fn scopes(&self) -> &Vec<String> {
&self.scopes
}
pub fn vars(&self) -> &Vec<crate::models::Variable> {
&self.vars
}
pub fn events(&self) -> &Vec<String> {
&self.events
}
pub fn schedule(&self) -> &String {
&self.schedule
}
pub fn timeout(&self) -> &i64 {
&self.timeout
}
pub fn entrypoint(&self) -> &String {
&self.entrypoint
}
pub fn commands(&self) -> &String {
&self.commands
}
pub fn version(&self) -> &String {
&self.version
}
pub fn installation_id(&self) -> &String {
&self.installation_id
}
pub fn provider_repository_id(&self) -> &String {
&self.provider_repository_id
}
pub fn provider_branch(&self) -> &String {
&self.provider_branch
}
pub fn provider_root_directory(&self) -> &String {
&self.provider_root_directory
}
pub fn provider_silent_mode(&self) -> &bool {
&self.provider_silent_mode
}
pub fn build_specification(&self) -> &String {
&self.build_specification
}
pub fn runtime_specification(&self) -> &String {
&self.runtime_specification
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_function_creation() {
let _model = <Function as Default>::default();
let _ = _model.id();
let _ = _model.created_at();
let _ = _model.updated_at();
let _ = _model.execute();
let _ = _model.name();
let _ = _model.enabled();
let _ = _model.live();
let _ = _model.logging();
let _ = _model.runtime();
let _ = _model.deployment_retention();
let _ = _model.deployment_id();
let _ = _model.deployment_created_at();
let _ = _model.latest_deployment_id();
let _ = _model.latest_deployment_created_at();
let _ = _model.latest_deployment_status();
let _ = _model.scopes();
let _ = _model.vars();
let _ = _model.events();
let _ = _model.schedule();
let _ = _model.timeout();
let _ = _model.entrypoint();
let _ = _model.commands();
let _ = _model.version();
let _ = _model.installation_id();
let _ = _model.provider_repository_id();
let _ = _model.provider_branch();
let _ = _model.provider_root_directory();
let _ = _model.provider_silent_mode();
let _ = _model.build_specification();
let _ = _model.runtime_specification();
}
#[test]
fn test_function_serialization() {
let model = <Function as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<Function, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}