use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegistrySku {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
}
impl RegistrySku {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-registry_sku".into(),
tier: Some("test-tier".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegistryProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub login_server: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provisioning_state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub admin_user_enabled: Option<bool>,
}
impl RegistryProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
login_server: Some("test-login_server".into()),
creation_date: Some("test-creation_date".into()),
provisioning_state: Some("test-provisioning_state".into()),
admin_user_enabled: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Registry {
#[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 sku: Option<RegistrySku>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<RegistryProperties>,
}
impl Registry {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
name: Some("test-registry".into()),
r#type: Some("test-type".into()),
location: Some("test-location".into()),
tags: Default::default(),
sku: Some(RegistrySku::fixture()),
properties: Some(RegistryProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegistryListResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub value: Vec<Registry>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_link: Option<String>,
}
impl RegistryListResult {
#[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 RegistryCreateProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub admin_user_enabled: Option<bool>,
}
impl RegistryCreateProperties {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
admin_user_enabled: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegistryCreateRequest {
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 sku: Option<RegistrySku>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<RegistryCreateProperties>,
}
impl RegistryCreateRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
location: "test-location".into(),
tags: Default::default(),
sku: Some(RegistrySku::fixture()),
properties: Some(RegistryCreateProperties::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RepositoryChangeableAttributes {
#[serde(skip_serializing_if = "Option::is_none")]
pub delete_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub write_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub list_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub read_enabled: Option<bool>,
}
impl RepositoryChangeableAttributes {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
delete_enabled: Some(false),
write_enabled: Some(false),
list_enabled: Some(false),
read_enabled: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Repository {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub changeable_attributes: Option<RepositoryChangeableAttributes>,
}
impl Repository {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-repository".into()),
changeable_attributes: Some(RepositoryChangeableAttributes::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CatalogResult {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub repositories: Vec<String>,
}
impl CatalogResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
repositories: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TagListResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub tags: Vec<String>,
}
impl TagListResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-tag_list_result".into()),
tags: vec![],
}
}
}