aws_sdk_amp/operation/create_scraper/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_scraper::_create_scraper_output::CreateScraperOutputBuilder;
3
4pub use crate::operation::create_scraper::_create_scraper_input::CreateScraperInputBuilder;
5
6impl crate::operation::create_scraper::builders::CreateScraperInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_scraper::CreateScraperOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_scraper::CreateScraperError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_scraper();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateScraper`.
24///
25/// <p>The <code>CreateScraper</code> operation creates a scraper to collect metrics. A scraper pulls metrics from Prometheus-compatible sources within an Amazon EKS cluster, and sends them to your Amazon Managed Service for Prometheus workspace. Scrapers are flexible, and can be configured to control what metrics are collected, the frequency of collection, what transformations are applied to the metrics, and more.</p>
26/// <p>An IAM role will be created for you that Amazon Managed Service for Prometheus uses to access the metrics in your cluster. You must configure this role with a policy that allows it to scrape metrics from your cluster. For more information, see <a href="https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-eks-setup">Configuring your Amazon EKS cluster</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>
27/// <p>The <code>scrapeConfiguration</code> parameter contains the base-64 encoded YAML configuration for the scraper.</p><note>
28/// <p>For more information about collectors, including what metrics are collected, and how to configure the scraper, see <a href="https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html">Using an Amazon Web Services managed collector</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>
29/// </note>
30#[derive(::std::clone::Clone, ::std::fmt::Debug)]
31pub struct CreateScraperFluentBuilder {
32    handle: ::std::sync::Arc<crate::client::Handle>,
33    inner: crate::operation::create_scraper::builders::CreateScraperInputBuilder,
34    config_override: ::std::option::Option<crate::config::Builder>,
35}
36impl
37    crate::client::customize::internal::CustomizableSend<
38        crate::operation::create_scraper::CreateScraperOutput,
39        crate::operation::create_scraper::CreateScraperError,
40    > for CreateScraperFluentBuilder
41{
42    fn send(
43        self,
44        config_override: crate::config::Builder,
45    ) -> crate::client::customize::internal::BoxFuture<
46        crate::client::customize::internal::SendResult<
47            crate::operation::create_scraper::CreateScraperOutput,
48            crate::operation::create_scraper::CreateScraperError,
49        >,
50    > {
51        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
52    }
53}
54impl CreateScraperFluentBuilder {
55    /// Creates a new `CreateScraperFluentBuilder`.
56    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
57        Self {
58            handle,
59            inner: ::std::default::Default::default(),
60            config_override: ::std::option::Option::None,
61        }
62    }
63    /// Access the CreateScraper as a reference.
64    pub fn as_input(&self) -> &crate::operation::create_scraper::builders::CreateScraperInputBuilder {
65        &self.inner
66    }
67    /// Sends the request and returns the response.
68    ///
69    /// If an error occurs, an `SdkError` will be returned with additional details that
70    /// can be matched against.
71    ///
72    /// By default, any retryable failures will be retried twice. Retry behavior
73    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
74    /// set when configuring the client.
75    pub async fn send(
76        self,
77    ) -> ::std::result::Result<
78        crate::operation::create_scraper::CreateScraperOutput,
79        ::aws_smithy_runtime_api::client::result::SdkError<
80            crate::operation::create_scraper::CreateScraperError,
81            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
82        >,
83    > {
84        let input = self
85            .inner
86            .build()
87            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
88        let runtime_plugins = crate::operation::create_scraper::CreateScraper::operation_runtime_plugins(
89            self.handle.runtime_plugins.clone(),
90            &self.handle.conf,
91            self.config_override,
92        );
93        crate::operation::create_scraper::CreateScraper::orchestrate(&runtime_plugins, input).await
94    }
95
96    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
97    pub fn customize(
98        self,
99    ) -> crate::client::customize::CustomizableOperation<
100        crate::operation::create_scraper::CreateScraperOutput,
101        crate::operation::create_scraper::CreateScraperError,
102        Self,
103    > {
104        crate::client::customize::CustomizableOperation::new(self)
105    }
106    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
107        self.set_config_override(::std::option::Option::Some(config_override.into()));
108        self
109    }
110
111    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
112        self.config_override = config_override;
113        self
114    }
115    /// <p>(optional) An alias to associate with the scraper. This is for your use, and does not need to be unique.</p>
116    pub fn alias(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
117        self.inner = self.inner.alias(input.into());
118        self
119    }
120    /// <p>(optional) An alias to associate with the scraper. This is for your use, and does not need to be unique.</p>
121    pub fn set_alias(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
122        self.inner = self.inner.set_alias(input);
123        self
124    }
125    /// <p>(optional) An alias to associate with the scraper. This is for your use, and does not need to be unique.</p>
126    pub fn get_alias(&self) -> &::std::option::Option<::std::string::String> {
127        self.inner.get_alias()
128    }
129    /// <p>The configuration file to use in the new scraper. For more information, see <a href="https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration">Scraper configuration</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>
130    pub fn scrape_configuration(mut self, input: crate::types::ScrapeConfiguration) -> Self {
131        self.inner = self.inner.scrape_configuration(input);
132        self
133    }
134    /// <p>The configuration file to use in the new scraper. For more information, see <a href="https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration">Scraper configuration</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>
135    pub fn set_scrape_configuration(mut self, input: ::std::option::Option<crate::types::ScrapeConfiguration>) -> Self {
136        self.inner = self.inner.set_scrape_configuration(input);
137        self
138    }
139    /// <p>The configuration file to use in the new scraper. For more information, see <a href="https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-configuration">Scraper configuration</a> in the <i>Amazon Managed Service for Prometheus User Guide</i>.</p>
140    pub fn get_scrape_configuration(&self) -> &::std::option::Option<crate::types::ScrapeConfiguration> {
141        self.inner.get_scrape_configuration()
142    }
143    /// <p>The Amazon EKS cluster from which the scraper will collect metrics.</p>
144    pub fn source(mut self, input: crate::types::Source) -> Self {
145        self.inner = self.inner.source(input);
146        self
147    }
148    /// <p>The Amazon EKS cluster from which the scraper will collect metrics.</p>
149    pub fn set_source(mut self, input: ::std::option::Option<crate::types::Source>) -> Self {
150        self.inner = self.inner.set_source(input);
151        self
152    }
153    /// <p>The Amazon EKS cluster from which the scraper will collect metrics.</p>
154    pub fn get_source(&self) -> &::std::option::Option<crate::types::Source> {
155        self.inner.get_source()
156    }
157    /// <p>The Amazon Managed Service for Prometheus workspace to send metrics to.</p>
158    pub fn destination(mut self, input: crate::types::Destination) -> Self {
159        self.inner = self.inner.destination(input);
160        self
161    }
162    /// <p>The Amazon Managed Service for Prometheus workspace to send metrics to.</p>
163    pub fn set_destination(mut self, input: ::std::option::Option<crate::types::Destination>) -> Self {
164        self.inner = self.inner.set_destination(input);
165        self
166    }
167    /// <p>The Amazon Managed Service for Prometheus workspace to send metrics to.</p>
168    pub fn get_destination(&self) -> &::std::option::Option<crate::types::Destination> {
169        self.inner.get_destination()
170    }
171    /// <p>The scraper role configuration for the workspace.</p>
172    pub fn role_configuration(mut self, input: crate::types::RoleConfiguration) -> Self {
173        self.inner = self.inner.role_configuration(input);
174        self
175    }
176    /// <p>The scraper role configuration for the workspace.</p>
177    pub fn set_role_configuration(mut self, input: ::std::option::Option<crate::types::RoleConfiguration>) -> Self {
178        self.inner = self.inner.set_role_configuration(input);
179        self
180    }
181    /// <p>The scraper role configuration for the workspace.</p>
182    pub fn get_role_configuration(&self) -> &::std::option::Option<crate::types::RoleConfiguration> {
183        self.inner.get_role_configuration()
184    }
185    /// <p>(Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.</p>
186    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
187        self.inner = self.inner.client_token(input.into());
188        self
189    }
190    /// <p>(Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.</p>
191    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
192        self.inner = self.inner.set_client_token(input);
193        self
194    }
195    /// <p>(Optional) A unique, case-sensitive identifier that you can provide to ensure the idempotency of the request.</p>
196    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
197        self.inner.get_client_token()
198    }
199    ///
200    /// Adds a key-value pair to `tags`.
201    ///
202    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
203    ///
204    /// <p>(Optional) The list of tag keys and values to associate with the scraper.</p>
205    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
206        self.inner = self.inner.tags(k.into(), v.into());
207        self
208    }
209    /// <p>(Optional) The list of tag keys and values to associate with the scraper.</p>
210    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
211        self.inner = self.inner.set_tags(input);
212        self
213    }
214    /// <p>(Optional) The list of tag keys and values to associate with the scraper.</p>
215    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
216        self.inner.get_tags()
217    }
218}