Skip to main content

openjd_model/template/
host_requirements.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// Copyright by contributors to this project.
3// SPDX-License-Identifier: (Apache-2.0 OR MIT)
4
5//! Host requirements per spec §3.3.
6
7use crate::format_string::FormatString;
8use serde::Deserialize;
9
10/// §3.3 HostRequirements
11#[derive(Debug, Clone, Deserialize)]
12#[serde(rename_all = "camelCase", deny_unknown_fields)]
13pub struct HostRequirements {
14    pub amounts: Option<Vec<AmountRequirement>>,
15    pub attributes: Option<Vec<AttributeRequirement>>,
16}
17
18/// §3.3.1 AmountRequirement
19#[derive(Debug, Clone, Deserialize)]
20#[serde(rename_all = "camelCase", deny_unknown_fields)]
21pub struct AmountRequirement {
22    pub name: String,
23    pub min: Option<FormatString>,
24    pub max: Option<FormatString>,
25}
26
27/// §3.3.2 AttributeRequirement
28#[derive(Debug, Clone, Deserialize)]
29#[serde(rename_all = "camelCase", deny_unknown_fields)]
30pub struct AttributeRequirement {
31    pub name: String,
32    pub any_of: Option<Vec<FormatString>>,
33    pub all_of: Option<Vec<FormatString>>,
34}