use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionAppSiteConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub number_of_workers: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub net_framework_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linux_fx_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_command_line: Option<String>,
}
impl FunctionAppSiteConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
number_of_workers: Some(100),
net_framework_version: Some("test-net_framework_version".into()),
linux_fx_version: Some("test-linux_fx_version".into()),
app_command_line: Some("test-app_command_line".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionAppProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub host_names: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_host_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_group: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub server_farm_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub site_config: Option<FunctionAppSiteConfig>,
}
impl FunctionAppProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
state: Some("test-state".into()),
host_names: vec![],
default_host_name: Some("test-default_host_name".into()),
kind: Some("test-kind".into()),
resource_group: Some("test-resource_group".into()),
server_farm_id: Some("test-server_farm_id".into()),
site_config: Some(FunctionAppSiteConfig::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionApp {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<FunctionAppProperties>,
}
impl FunctionApp {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-function_app".into()),
r#type: Some("test-type".into()),
location: Some("test-location".into()),
tags: Default::default(),
kind: Some("test-kind".into()),
properties: Some(FunctionAppProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionAppListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<FunctionApp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl FunctionAppListResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
value: vec![],
next_link: Some("test-next_link".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionAppCreateOrUpdateProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub server_farm_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub site_config: Option<FunctionAppSiteConfig>,
}
impl FunctionAppCreateOrUpdateProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
server_farm_id: Some("test-server_farm_id".into()),
site_config: Some(FunctionAppSiteConfig::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionAppCreateRequest {
pub location: String,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<FunctionAppCreateOrUpdateProperties>,
}
impl FunctionAppCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
location: "test-location".into(),
tags: Default::default(),
kind: Some("test-kind".into()),
properties: Some(FunctionAppCreateOrUpdateProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub script_root_path_href: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub script_href: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub config_href: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_disabled: Option<bool>,
}
impl FunctionProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-function_properties".into()),
function_app_id: Some("test-function_app_id".into()),
script_root_path_href: Some("test-script_root_path_href".into()),
script_href: Some("test-script_href".into()),
config_href: Some("test-config_href".into()),
is_disabled: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Function {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<FunctionProperties>,
}
impl Function {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-function".into()),
r#type: Some("test-type".into()),
properties: Some(FunctionProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FunctionListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<Function>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl FunctionListResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
value: vec![],
next_link: Some("test-next_link".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppSettingsResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub properties: HashMap<String, String>,
}
impl AppSettingsResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-app_settings_result".into()),
r#type: Some("test-type".into()),
properties: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppSettingsUpdateRequest {
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub properties: HashMap<String, String>,
}
impl AppSettingsUpdateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
properties: Default::default(),
}
}
}