@@ -22,6 +22,20 @@ use validator::{Validate, ValidationErrorsKind};
pubmodvalidate;
usevalidate::*;
/// ### Core concepts related to the associated research activity
///
/// Could be used to filter research activity data and/or power data analytics through concept composition
///
/// ### Guidelines for creating keywords
/// - **Shall**
/// - Be officially sanctioned by responsible parties
/// - Be in lower-kebab-case
/// - Be unique relative to other keywords
/// - Contain three or more characters
/// - **Should**
/// - Not be too specific
/// - Be one or two words (ex. `foo` or `foo-bar`)
typeKeyword=String;
/// U.S. Classified National Security Information Level
///
/// See [President Executive Order 13526](https://www.archives.gov/isoo/policy-documents/cnsi-eo.html)
@@ -53,6 +67,7 @@ pub enum ClassificationLevel {
pubenumFuzzyValue{
#[display("partners")]
Partner,
/// See [Keyword]
#[display("keywords")]
Keyword,
#[display("sponsors")]
@@ -297,21 +312,8 @@ pub struct Metadata {
/// <div class="warning"><a href="https://code.ornl.gov/research-enablement/acorn/-/blob/main/acorn-lib/assets/constants/sponsors.csv">Full list of sponsors</a></div>
#[serde(skip_serializing_if="Option::is_none")]
pubsponsors:Option<Vec<String>>,
/// ### Core concepts related to the associated research activity
///
/// Could be used to filter research activity data and/or power data analytics through concept composition
///
/// ### Guidelines for creating keywords
/// - **Shall**
/// - Be officially sanctioned by responsible parties
/// - Be in lower-kebab-case
/// - Be unique relative to other keywords
/// - Contain three or more characters
/// - **Should**
/// - Not be too specific
/// - Be one or two words (ex. `foo` or `foo-bar`)
#[builder(default=Vec::<String>::new())]
pubkeywords:Vec<String>,
pubkeywords:Vec<Keyword>,
/// ### Software, code languages, and digital tools related to the associated research activity data