use super::{BooleanValue, FieldReference, KeyValueEntry, Labels, Located};
use crate::source::SourceSpan;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VolumeDefinition {
name: Located<String>,
span: SourceSpan,
driver: Option<Located<String>>,
driver_opts: Vec<KeyValueEntry>,
external: Option<Located<BooleanValue>>,
labels: Option<Labels>,
custom_name: Option<Located<String>>,
extension_fields: Vec<FieldReference>,
unknown_fields: Vec<FieldReference>,
}
impl VolumeDefinition {
pub(super) fn new(name: Located<String>, span: SourceSpan) -> Self {
Self {
name,
span,
driver: None,
driver_opts: Vec::new(),
external: None,
labels: None,
custom_name: None,
extension_fields: Vec::new(),
unknown_fields: Vec::new(),
}
}
pub(super) fn set_driver(&mut self, value: Located<String>) {
self.driver = Some(value);
}
pub(super) fn set_driver_opts(&mut self, value: Vec<KeyValueEntry>) {
self.driver_opts = value;
}
pub(super) fn set_external(&mut self, value: Located<BooleanValue>) {
self.external = Some(value);
}
pub(super) fn set_labels(&mut self, value: Labels) {
self.labels = Some(value);
}
pub(super) fn set_custom_name(&mut self, value: Located<String>) {
self.custom_name = Some(value);
}
pub(super) fn push_extension(&mut self, value: FieldReference) {
self.extension_fields.push(value);
}
pub(super) fn push_unknown(&mut self, value: FieldReference) {
self.unknown_fields.push(value);
}
#[must_use]
pub const fn name(&self) -> &Located<String> {
&self.name
}
#[must_use]
pub const fn span(&self) -> SourceSpan {
self.span
}
#[must_use]
pub const fn driver(&self) -> Option<&Located<String>> {
self.driver.as_ref()
}
#[must_use]
pub fn driver_opts(&self) -> &[KeyValueEntry] {
&self.driver_opts
}
#[must_use]
pub const fn external(&self) -> Option<&Located<BooleanValue>> {
self.external.as_ref()
}
#[must_use]
pub const fn labels(&self) -> Option<&Labels> {
self.labels.as_ref()
}
#[must_use]
pub const fn custom_name(&self) -> Option<&Located<String>> {
self.custom_name.as_ref()
}
#[must_use]
pub fn extension_fields(&self) -> &[FieldReference] {
&self.extension_fields
}
#[must_use]
pub fn unknown_fields(&self) -> &[FieldReference] {
&self.unknown_fields
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ConfigDefinition {
name: Located<String>,
span: SourceSpan,
file: Option<Located<String>>,
environment: Option<Located<String>>,
content: Option<Located<String>>,
external: Option<Located<BooleanValue>>,
custom_name: Option<Located<String>>,
extension_fields: Vec<FieldReference>,
unknown_fields: Vec<FieldReference>,
}
impl ConfigDefinition {
pub(super) fn new(name: Located<String>, span: SourceSpan) -> Self {
Self {
name,
span,
file: None,
environment: None,
content: None,
external: None,
custom_name: None,
extension_fields: Vec::new(),
unknown_fields: Vec::new(),
}
}
pub(super) fn set_file(&mut self, value: Located<String>) {
self.file = Some(value);
}
pub(super) fn set_environment(&mut self, value: Located<String>) {
self.environment = Some(value);
}
pub(super) fn set_content(&mut self, value: Located<String>) {
self.content = Some(value);
}
pub(super) fn set_external(&mut self, value: Located<BooleanValue>) {
self.external = Some(value);
}
pub(super) fn set_custom_name(&mut self, value: Located<String>) {
self.custom_name = Some(value);
}
pub(super) fn push_extension(&mut self, value: FieldReference) {
self.extension_fields.push(value);
}
pub(super) fn push_unknown(&mut self, value: FieldReference) {
self.unknown_fields.push(value);
}
#[must_use]
pub const fn name(&self) -> &Located<String> {
&self.name
}
#[must_use]
pub const fn span(&self) -> SourceSpan {
self.span
}
#[must_use]
pub const fn file(&self) -> Option<&Located<String>> {
self.file.as_ref()
}
#[must_use]
pub const fn environment(&self) -> Option<&Located<String>> {
self.environment.as_ref()
}
#[must_use]
pub const fn content(&self) -> Option<&Located<String>> {
self.content.as_ref()
}
#[must_use]
pub const fn external(&self) -> Option<&Located<BooleanValue>> {
self.external.as_ref()
}
#[must_use]
pub const fn custom_name(&self) -> Option<&Located<String>> {
self.custom_name.as_ref()
}
#[must_use]
pub fn extension_fields(&self) -> &[FieldReference] {
&self.extension_fields
}
#[must_use]
pub fn unknown_fields(&self) -> &[FieldReference] {
&self.unknown_fields
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SecretDefinition {
name: Located<String>,
span: SourceSpan,
file: Option<Located<String>>,
environment: Option<Located<String>>,
external: Option<Located<BooleanValue>>,
custom_name: Option<Located<String>>,
extension_fields: Vec<FieldReference>,
unknown_fields: Vec<FieldReference>,
}
impl SecretDefinition {
pub(super) fn new(name: Located<String>, span: SourceSpan) -> Self {
Self {
name,
span,
file: None,
environment: None,
external: None,
custom_name: None,
extension_fields: Vec::new(),
unknown_fields: Vec::new(),
}
}
pub(super) fn set_file(&mut self, value: Located<String>) {
self.file = Some(value);
}
pub(super) fn set_environment(&mut self, value: Located<String>) {
self.environment = Some(value);
}
pub(super) fn set_external(&mut self, value: Located<BooleanValue>) {
self.external = Some(value);
}
pub(super) fn set_custom_name(&mut self, value: Located<String>) {
self.custom_name = Some(value);
}
pub(super) fn push_extension(&mut self, value: FieldReference) {
self.extension_fields.push(value);
}
pub(super) fn push_unknown(&mut self, value: FieldReference) {
self.unknown_fields.push(value);
}
#[must_use]
pub const fn name(&self) -> &Located<String> {
&self.name
}
#[must_use]
pub const fn span(&self) -> SourceSpan {
self.span
}
#[must_use]
pub const fn file(&self) -> Option<&Located<String>> {
self.file.as_ref()
}
#[must_use]
pub const fn environment(&self) -> Option<&Located<String>> {
self.environment.as_ref()
}
#[must_use]
pub const fn external(&self) -> Option<&Located<BooleanValue>> {
self.external.as_ref()
}
#[must_use]
pub const fn custom_name(&self) -> Option<&Located<String>> {
self.custom_name.as_ref()
}
#[must_use]
pub fn extension_fields(&self) -> &[FieldReference] {
&self.extension_fields
}
#[must_use]
pub fn unknown_fields(&self) -> &[FieldReference] {
&self.unknown_fields
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct LongGrant {
span: SourceSpan,
source: Option<Located<String>>,
target: Option<Located<String>>,
uid: Option<Located<String>>,
gid: Option<Located<String>>,
mode: Option<Located<String>>,
extension_fields: Vec<FieldReference>,
unknown_fields: Vec<FieldReference>,
}
impl LongGrant {
pub(super) fn new(span: SourceSpan) -> Self {
Self {
span,
source: None,
target: None,
uid: None,
gid: None,
mode: None,
extension_fields: Vec::new(),
unknown_fields: Vec::new(),
}
}
pub(super) fn set_source(&mut self, value: Located<String>) {
self.source = Some(value);
}
pub(super) fn set_target(&mut self, value: Located<String>) {
self.target = Some(value);
}
pub(super) fn set_uid(&mut self, value: Located<String>) {
self.uid = Some(value);
}
pub(super) fn set_gid(&mut self, value: Located<String>) {
self.gid = Some(value);
}
pub(super) fn set_mode(&mut self, value: Located<String>) {
self.mode = Some(value);
}
pub(super) fn push_extension(&mut self, value: FieldReference) {
self.extension_fields.push(value);
}
pub(super) fn push_unknown(&mut self, value: FieldReference) {
self.unknown_fields.push(value);
}
#[must_use]
pub const fn span(&self) -> SourceSpan {
self.span
}
#[must_use]
pub const fn source(&self) -> Option<&Located<String>> {
self.source.as_ref()
}
#[must_use]
pub const fn target(&self) -> Option<&Located<String>> {
self.target.as_ref()
}
#[must_use]
pub const fn uid(&self) -> Option<&Located<String>> {
self.uid.as_ref()
}
#[must_use]
pub const fn gid(&self) -> Option<&Located<String>> {
self.gid.as_ref()
}
#[must_use]
pub const fn mode(&self) -> Option<&Located<String>> {
self.mode.as_ref()
}
#[must_use]
pub fn extension_fields(&self) -> &[FieldReference] {
&self.extension_fields
}
#[must_use]
pub fn unknown_fields(&self) -> &[FieldReference] {
&self.unknown_fields
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConfigGrant {
Short(Located<String>),
Long(Box<LongGrant>),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SecretGrant {
Short(Located<String>),
Long(Box<LongGrant>),
}