use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct AlbumUpdateOperationPayloadDataAttributes {
#[serde(rename = "accessType", skip_serializing_if = "Option::is_none")]
pub access_type: Option<AccessType>,
#[serde(rename = "albumType", skip_serializing_if = "Option::is_none")]
pub album_type: Option<AlbumType>,
#[serde(rename = "copyright", skip_serializing_if = "Option::is_none")]
pub copyright: Option<Box<models::Copyright>>,
#[serde(rename = "explicitLyrics", skip_serializing_if = "Option::is_none")]
pub explicit_lyrics: Option<bool>,
#[serde(rename = "releaseDate", skip_serializing_if = "Option::is_none")]
pub release_date: Option<String>,
#[serde(rename = "title", skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl AlbumUpdateOperationPayloadDataAttributes {
pub fn new() -> AlbumUpdateOperationPayloadDataAttributes {
AlbumUpdateOperationPayloadDataAttributes {
access_type: None,
album_type: None,
copyright: None,
explicit_lyrics: None,
release_date: None,
title: None,
version: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AccessType {
#[serde(rename = "PUBLIC")]
Public,
#[serde(rename = "UNLISTED")]
Unlisted,
#[serde(rename = "PRIVATE")]
Private,
}
impl Default for AccessType {
fn default() -> AccessType {
Self::Public
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AlbumType {
#[serde(rename = "ALBUM")]
Album,
#[serde(rename = "EP")]
Ep,
#[serde(rename = "SINGLE")]
Single,
}
impl Default for AlbumType {
fn default() -> AlbumType {
Self::Album
}
}