use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub administrator_login: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fully_qualified_domain_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl ServerProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
administrator_login: Some("test-administrator_login".into()),
fully_qualified_domain_name: Some("test-fully_qualified_domain_name".into()),
state: Some("test-state".into()),
version: Some("test-version".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Server {
#[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 properties: Option<ServerProperties>,
}
impl Server {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-server".into()),
r#type: Some("test-type".into()),
location: Some("test-location".into()),
tags: Default::default(),
properties: Some(ServerProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<Server>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl ServerListResult {
#[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 ServerCreateOrUpdateProperties {
pub administrator_login: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub administrator_login_password: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl ServerCreateOrUpdateProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
administrator_login: "test-administrator_login".into(),
administrator_login_password: Some("test-administrator_login_password".into()),
version: Some("test-version".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerCreateRequest {
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 properties: Option<ServerCreateOrUpdateProperties>,
}
impl ServerCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
location: "test-location".into(),
tags: Default::default(),
properties: Some(ServerCreateOrUpdateProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatabaseProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub database_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub collation: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size_bytes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_service_objective_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub current_service_objective_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_secondary_location: Option<String>,
}
impl DatabaseProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
status: Some("test-status".into()),
database_id: Some("test-database_id".into()),
collation: Some("test-collation".into()),
max_size_bytes: Some(100),
requested_service_objective_name: Some("test-requested_service_objective_name".into()),
current_service_objective_name: Some("test-current_service_objective_name".into()),
default_secondary_location: Some("test-default_secondary_location".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Database {
#[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(skip_serializing_if = "Option::is_none")]
pub sku: Option<DatabaseSku>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<DatabaseProperties>,
}
impl Database {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-database".into()),
r#type: Some("test-type".into()),
location: Some("test-location".into()),
sku: Some(DatabaseSku::fixture()),
tags: Default::default(),
properties: Some(DatabaseProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatabaseSku {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub capacity: Option<i32>,
}
impl DatabaseSku {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-database_sku".into(),
tier: Some("test-tier".into()),
capacity: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatabaseListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<Database>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl DatabaseListResult {
#[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 DatabaseCreateOrUpdateProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub collation: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size_bytes: Option<i64>,
}
impl DatabaseCreateOrUpdateProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
collation: Some("test-collation".into()),
max_size_bytes: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DatabaseCreateRequest {
pub location: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub sku: Option<DatabaseSku>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub tags: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<DatabaseCreateOrUpdateProperties>,
}
impl DatabaseCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
location: "test-location".into(),
sku: Some(DatabaseSku::fixture()),
tags: Default::default(),
properties: Some(DatabaseCreateOrUpdateProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallRuleProperties {
pub start_ip_address: String,
pub end_ip_address: String,
}
impl FirewallRuleProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
start_ip_address: "test-start_ip_address".into(),
end_ip_address: "test-end_ip_address".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallRule {
#[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<FirewallRuleProperties>,
}
impl FirewallRule {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-firewall_rule".into()),
r#type: Some("test-type".into()),
properties: Some(FirewallRuleProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FirewallRuleListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<FirewallRule>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl FirewallRuleListResult {
#[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 FirewallRuleCreateRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<FirewallRuleProperties>,
}
impl FirewallRuleCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
properties: Some(FirewallRuleProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerBlobAuditingPolicyProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_endpoint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_azure_monitor_target_enabled: Option<bool>,
}
impl ServerBlobAuditingPolicyProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
state: Some("Enabled".into()),
storage_endpoint: None,
retention_days: Some(90),
is_azure_monitor_target_enabled: Some(true),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ServerBlobAuditingPolicy {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<ServerBlobAuditingPolicyProperties>,
}
impl ServerBlobAuditingPolicy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.Sql/servers/test-server/auditingSettings/default".into()),
name: Some("default".into()),
properties: Some(ServerBlobAuditingPolicyProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EnableServerAuditingRequest {
pub properties: EnableServerAuditingProperties,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EnableServerAuditingProperties {
pub state: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_endpoint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_account_access_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_azure_monitor_target_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_days: Option<u32>,
}
impl EnableServerAuditingRequest {
pub fn enable_to_azure_monitor() -> Self {
Self {
properties: EnableServerAuditingProperties {
state: "Enabled".into(),
storage_endpoint: None,
storage_account_access_key: None,
is_azure_monitor_target_enabled: Some(true),
retention_days: None,
},
}
}
}