aws_sdk_observabilityadmin/operation/create_telemetry_rule/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_telemetry_rule::_create_telemetry_rule_output::CreateTelemetryRuleOutputBuilder;
3
4pub use crate::operation::create_telemetry_rule::_create_telemetry_rule_input::CreateTelemetryRuleInputBuilder;
5
6impl crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder {
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_telemetry_rule::CreateTelemetryRuleOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_telemetry_rule();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateTelemetryRule`.
24///
25/// <p>Creates a telemetry rule that defines how telemetry should be configured for Amazon Web Services resources in your account. The rule specifies which resources should have telemetry enabled and how that telemetry data should be collected based on resource type, telemetry type, and selection criteria.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateTelemetryRuleFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
35        crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
36    > for CreateTelemetryRuleFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
44            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateTelemetryRuleFluentBuilder {
51    /// Creates a new `CreateTelemetryRuleFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateTelemetryRule as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_telemetry_rule::CreateTelemetryRule::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_telemetry_rule::CreateTelemetryRule::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
97        crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>A unique name for the telemetry rule being created.</p>
112    pub fn rule_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.rule_name(input.into());
114        self
115    }
116    /// <p>A unique name for the telemetry rule being created.</p>
117    pub fn set_rule_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_rule_name(input);
119        self
120    }
121    /// <p>A unique name for the telemetry rule being created.</p>
122    pub fn get_rule_name(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_rule_name()
124    }
125    /// <p>The configuration details for the telemetry rule, including the resource type, telemetry type, destination configuration, and selection criteria for which resources the rule applies to.</p>
126    pub fn rule(mut self, input: crate::types::TelemetryRule) -> Self {
127        self.inner = self.inner.rule(input);
128        self
129    }
130    /// <p>The configuration details for the telemetry rule, including the resource type, telemetry type, destination configuration, and selection criteria for which resources the rule applies to.</p>
131    pub fn set_rule(mut self, input: ::std::option::Option<crate::types::TelemetryRule>) -> Self {
132        self.inner = self.inner.set_rule(input);
133        self
134    }
135    /// <p>The configuration details for the telemetry rule, including the resource type, telemetry type, destination configuration, and selection criteria for which resources the rule applies to.</p>
136    pub fn get_rule(&self) -> &::std::option::Option<crate::types::TelemetryRule> {
137        self.inner.get_rule()
138    }
139    ///
140    /// Adds a key-value pair to `Tags`.
141    ///
142    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
143    ///
144    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
145    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
146        self.inner = self.inner.tags(k.into(), v.into());
147        self
148    }
149    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
150    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
151        self.inner = self.inner.set_tags(input);
152        self
153    }
154    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
155    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
156        self.inner.get_tags()
157    }
158}