1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The configuration of a Managed Service for Apache Flink Studio notebook.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ZeppelinApplicationConfigurationDescription {
    /// <p>The monitoring configuration of a Managed Service for Apache Flink Studio notebook.</p>
    pub monitoring_configuration_description: ::std::option::Option<crate::types::ZeppelinMonitoringConfigurationDescription>,
    /// <p>The Amazon Glue Data Catalog that is associated with the Managed Service for Apache Flink Studio notebook.</p>
    pub catalog_configuration_description: ::std::option::Option<crate::types::CatalogConfigurationDescription>,
    /// <p>The parameters required to deploy a Managed Service for Apache Flink Studio notebook as an application with durable state.</p>
    pub deploy_as_application_configuration_description: ::std::option::Option<crate::types::DeployAsApplicationConfigurationDescription>,
    /// <p>Custom artifacts are dependency JARs and user-defined functions (UDF).</p>
    pub custom_artifacts_configuration_description: ::std::option::Option<::std::vec::Vec<crate::types::CustomArtifactConfigurationDescription>>,
}
impl ZeppelinApplicationConfigurationDescription {
    /// <p>The monitoring configuration of a Managed Service for Apache Flink Studio notebook.</p>
    pub fn monitoring_configuration_description(&self) -> ::std::option::Option<&crate::types::ZeppelinMonitoringConfigurationDescription> {
        self.monitoring_configuration_description.as_ref()
    }
    /// <p>The Amazon Glue Data Catalog that is associated with the Managed Service for Apache Flink Studio notebook.</p>
    pub fn catalog_configuration_description(&self) -> ::std::option::Option<&crate::types::CatalogConfigurationDescription> {
        self.catalog_configuration_description.as_ref()
    }
    /// <p>The parameters required to deploy a Managed Service for Apache Flink Studio notebook as an application with durable state.</p>
    pub fn deploy_as_application_configuration_description(
        &self,
    ) -> ::std::option::Option<&crate::types::DeployAsApplicationConfigurationDescription> {
        self.deploy_as_application_configuration_description.as_ref()
    }
    /// <p>Custom artifacts are dependency JARs and user-defined functions (UDF).</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.custom_artifacts_configuration_description.is_none()`.
    pub fn custom_artifacts_configuration_description(&self) -> &[crate::types::CustomArtifactConfigurationDescription] {
        self.custom_artifacts_configuration_description.as_deref().unwrap_or_default()
    }
}
impl ZeppelinApplicationConfigurationDescription {
    /// Creates a new builder-style object to manufacture [`ZeppelinApplicationConfigurationDescription`](crate::types::ZeppelinApplicationConfigurationDescription).
    pub fn builder() -> crate::types::builders::ZeppelinApplicationConfigurationDescriptionBuilder {
        crate::types::builders::ZeppelinApplicationConfigurationDescriptionBuilder::default()
    }
}

/// A builder for [`ZeppelinApplicationConfigurationDescription`](crate::types::ZeppelinApplicationConfigurationDescription).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ZeppelinApplicationConfigurationDescriptionBuilder {
    pub(crate) monitoring_configuration_description: ::std::option::Option<crate::types::ZeppelinMonitoringConfigurationDescription>,
    pub(crate) catalog_configuration_description: ::std::option::Option<crate::types::CatalogConfigurationDescription>,
    pub(crate) deploy_as_application_configuration_description: ::std::option::Option<crate::types::DeployAsApplicationConfigurationDescription>,
    pub(crate) custom_artifacts_configuration_description:
        ::std::option::Option<::std::vec::Vec<crate::types::CustomArtifactConfigurationDescription>>,
}
impl ZeppelinApplicationConfigurationDescriptionBuilder {
    /// <p>The monitoring configuration of a Managed Service for Apache Flink Studio notebook.</p>
    /// This field is required.
    pub fn monitoring_configuration_description(mut self, input: crate::types::ZeppelinMonitoringConfigurationDescription) -> Self {
        self.monitoring_configuration_description = ::std::option::Option::Some(input);
        self
    }
    /// <p>The monitoring configuration of a Managed Service for Apache Flink Studio notebook.</p>
    pub fn set_monitoring_configuration_description(
        mut self,
        input: ::std::option::Option<crate::types::ZeppelinMonitoringConfigurationDescription>,
    ) -> Self {
        self.monitoring_configuration_description = input;
        self
    }
    /// <p>The monitoring configuration of a Managed Service for Apache Flink Studio notebook.</p>
    pub fn get_monitoring_configuration_description(&self) -> &::std::option::Option<crate::types::ZeppelinMonitoringConfigurationDescription> {
        &self.monitoring_configuration_description
    }
    /// <p>The Amazon Glue Data Catalog that is associated with the Managed Service for Apache Flink Studio notebook.</p>
    pub fn catalog_configuration_description(mut self, input: crate::types::CatalogConfigurationDescription) -> Self {
        self.catalog_configuration_description = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Amazon Glue Data Catalog that is associated with the Managed Service for Apache Flink Studio notebook.</p>
    pub fn set_catalog_configuration_description(mut self, input: ::std::option::Option<crate::types::CatalogConfigurationDescription>) -> Self {
        self.catalog_configuration_description = input;
        self
    }
    /// <p>The Amazon Glue Data Catalog that is associated with the Managed Service for Apache Flink Studio notebook.</p>
    pub fn get_catalog_configuration_description(&self) -> &::std::option::Option<crate::types::CatalogConfigurationDescription> {
        &self.catalog_configuration_description
    }
    /// <p>The parameters required to deploy a Managed Service for Apache Flink Studio notebook as an application with durable state.</p>
    pub fn deploy_as_application_configuration_description(mut self, input: crate::types::DeployAsApplicationConfigurationDescription) -> Self {
        self.deploy_as_application_configuration_description = ::std::option::Option::Some(input);
        self
    }
    /// <p>The parameters required to deploy a Managed Service for Apache Flink Studio notebook as an application with durable state.</p>
    pub fn set_deploy_as_application_configuration_description(
        mut self,
        input: ::std::option::Option<crate::types::DeployAsApplicationConfigurationDescription>,
    ) -> Self {
        self.deploy_as_application_configuration_description = input;
        self
    }
    /// <p>The parameters required to deploy a Managed Service for Apache Flink Studio notebook as an application with durable state.</p>
    pub fn get_deploy_as_application_configuration_description(
        &self,
    ) -> &::std::option::Option<crate::types::DeployAsApplicationConfigurationDescription> {
        &self.deploy_as_application_configuration_description
    }
    /// Appends an item to `custom_artifacts_configuration_description`.
    ///
    /// To override the contents of this collection use [`set_custom_artifacts_configuration_description`](Self::set_custom_artifacts_configuration_description).
    ///
    /// <p>Custom artifacts are dependency JARs and user-defined functions (UDF).</p>
    pub fn custom_artifacts_configuration_description(mut self, input: crate::types::CustomArtifactConfigurationDescription) -> Self {
        let mut v = self.custom_artifacts_configuration_description.unwrap_or_default();
        v.push(input);
        self.custom_artifacts_configuration_description = ::std::option::Option::Some(v);
        self
    }
    /// <p>Custom artifacts are dependency JARs and user-defined functions (UDF).</p>
    pub fn set_custom_artifacts_configuration_description(
        mut self,
        input: ::std::option::Option<::std::vec::Vec<crate::types::CustomArtifactConfigurationDescription>>,
    ) -> Self {
        self.custom_artifacts_configuration_description = input;
        self
    }
    /// <p>Custom artifacts are dependency JARs and user-defined functions (UDF).</p>
    pub fn get_custom_artifacts_configuration_description(
        &self,
    ) -> &::std::option::Option<::std::vec::Vec<crate::types::CustomArtifactConfigurationDescription>> {
        &self.custom_artifacts_configuration_description
    }
    /// Consumes the builder and constructs a [`ZeppelinApplicationConfigurationDescription`](crate::types::ZeppelinApplicationConfigurationDescription).
    pub fn build(self) -> crate::types::ZeppelinApplicationConfigurationDescription {
        crate::types::ZeppelinApplicationConfigurationDescription {
            monitoring_configuration_description: self.monitoring_configuration_description,
            catalog_configuration_description: self.catalog_configuration_description,
            deploy_as_application_configuration_description: self.deploy_as_application_configuration_description,
            custom_artifacts_configuration_description: self.custom_artifacts_configuration_description,
        }
    }
}