Skip to main content

aws_sdk_redshift/types/
_node_configuration_options_filter.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>A set of elements to filter the returned node configurations.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct NodeConfigurationOptionsFilter {
7    /// <p>The name of the element to filter.</p>
8    pub name: ::std::option::Option<crate::types::NodeConfigurationOptionsFilterName>,
9    /// <p>The filter operator. If filter Name is NodeType only the 'in' operator is supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'. Provide two values to evaluate for 'between'. Provide a list of values for 'in'.</p>
10    pub operator: ::std::option::Option<crate::types::OperatorType>,
11    /// <p>List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).</p>
12    pub values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
13}
14impl NodeConfigurationOptionsFilter {
15    /// <p>The name of the element to filter.</p>
16    pub fn name(&self) -> ::std::option::Option<&crate::types::NodeConfigurationOptionsFilterName> {
17        self.name.as_ref()
18    }
19    /// <p>The filter operator. If filter Name is NodeType only the 'in' operator is supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'. Provide two values to evaluate for 'between'. Provide a list of values for 'in'.</p>
20    pub fn operator(&self) -> ::std::option::Option<&crate::types::OperatorType> {
21        self.operator.as_ref()
22    }
23    /// <p>List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).</p>
24    ///
25    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.values.is_none()`.
26    pub fn values(&self) -> &[::std::string::String] {
27        self.values.as_deref().unwrap_or_default()
28    }
29}
30impl NodeConfigurationOptionsFilter {
31    /// Creates a new builder-style object to manufacture [`NodeConfigurationOptionsFilter`](crate::types::NodeConfigurationOptionsFilter).
32    pub fn builder() -> crate::types::builders::NodeConfigurationOptionsFilterBuilder {
33        crate::types::builders::NodeConfigurationOptionsFilterBuilder::default()
34    }
35}
36
37/// A builder for [`NodeConfigurationOptionsFilter`](crate::types::NodeConfigurationOptionsFilter).
38#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
39#[non_exhaustive]
40pub struct NodeConfigurationOptionsFilterBuilder {
41    pub(crate) name: ::std::option::Option<crate::types::NodeConfigurationOptionsFilterName>,
42    pub(crate) operator: ::std::option::Option<crate::types::OperatorType>,
43    pub(crate) values: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
44}
45impl NodeConfigurationOptionsFilterBuilder {
46    /// <p>The name of the element to filter.</p>
47    pub fn name(mut self, input: crate::types::NodeConfigurationOptionsFilterName) -> Self {
48        self.name = ::std::option::Option::Some(input);
49        self
50    }
51    /// <p>The name of the element to filter.</p>
52    pub fn set_name(mut self, input: ::std::option::Option<crate::types::NodeConfigurationOptionsFilterName>) -> Self {
53        self.name = input;
54        self
55    }
56    /// <p>The name of the element to filter.</p>
57    pub fn get_name(&self) -> &::std::option::Option<crate::types::NodeConfigurationOptionsFilterName> {
58        &self.name
59    }
60    /// <p>The filter operator. If filter Name is NodeType only the 'in' operator is supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'. Provide two values to evaluate for 'between'. Provide a list of values for 'in'.</p>
61    pub fn operator(mut self, input: crate::types::OperatorType) -> Self {
62        self.operator = ::std::option::Option::Some(input);
63        self
64    }
65    /// <p>The filter operator. If filter Name is NodeType only the 'in' operator is supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'. Provide two values to evaluate for 'between'. Provide a list of values for 'in'.</p>
66    pub fn set_operator(mut self, input: ::std::option::Option<crate::types::OperatorType>) -> Self {
67        self.operator = input;
68        self
69    }
70    /// <p>The filter operator. If filter Name is NodeType only the 'in' operator is supported. Provide one value to evaluate for 'eq', 'lt', 'le', 'gt', and 'ge'. Provide two values to evaluate for 'between'. Provide a list of values for 'in'.</p>
71    pub fn get_operator(&self) -> &::std::option::Option<crate::types::OperatorType> {
72        &self.operator
73    }
74    /// Appends an item to `values`.
75    ///
76    /// To override the contents of this collection use [`set_values`](Self::set_values).
77    ///
78    /// <p>List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).</p>
79    pub fn values(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
80        let mut v = self.values.unwrap_or_default();
81        v.push(input.into());
82        self.values = ::std::option::Option::Some(v);
83        self
84    }
85    /// <p>List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).</p>
86    pub fn set_values(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
87        self.values = input;
88        self
89    }
90    /// <p>List of values. Compare Name using Operator to Values. If filter Name is NumberOfNodes, then values can range from 0 to 200. If filter Name is EstimatedDiskUtilizationPercent, then values can range from 0 to 100. For example, filter NumberOfNodes (name) GT (operator) 3 (values).</p>
91    pub fn get_values(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
92        &self.values
93    }
94    /// Consumes the builder and constructs a [`NodeConfigurationOptionsFilter`](crate::types::NodeConfigurationOptionsFilter).
95    pub fn build(self) -> crate::types::NodeConfigurationOptionsFilter {
96        crate::types::NodeConfigurationOptionsFilter {
97            name: self.name,
98            operator: self.operator,
99            values: self.values,
100        }
101    }
102}