aws-sdk-observabilityadmin 1.53.0

AWS SDK for CloudWatch Observability Admin Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_telemetry_rule::_create_telemetry_rule_input::CreateTelemetryRuleInputBuilder;

pub use crate::operation::create_telemetry_rule::_create_telemetry_rule_output::CreateTelemetryRuleOutputBuilder;

impl crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.create_telemetry_rule();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `CreateTelemetryRule`.
///
/// <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>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateTelemetryRuleFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
        crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
    > for CreateTelemetryRuleFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl CreateTelemetryRuleFluentBuilder {
    /// Creates a new `CreateTelemetryRuleFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the CreateTelemetryRule as a reference.
    pub fn as_input(&self) -> &crate::operation::create_telemetry_rule::builders::CreateTelemetryRuleInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::create_telemetry_rule::CreateTelemetryRule::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::create_telemetry_rule::CreateTelemetryRule::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::create_telemetry_rule::CreateTelemetryRuleOutput,
        crate::operation::create_telemetry_rule::CreateTelemetryRuleError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>A unique name for the telemetry rule being created.</p>
    pub fn rule_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.rule_name(input.into());
        self
    }
    /// <p>A unique name for the telemetry rule being created.</p>
    pub fn set_rule_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_rule_name(input);
        self
    }
    /// <p>A unique name for the telemetry rule being created.</p>
    pub fn get_rule_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_rule_name()
    }
    /// <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>
    pub fn rule(mut self, input: crate::types::TelemetryRule) -> Self {
        self.inner = self.inner.rule(input);
        self
    }
    /// <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>
    pub fn set_rule(mut self, input: ::std::option::Option<crate::types::TelemetryRule>) -> Self {
        self.inner = self.inner.set_rule(input);
        self
    }
    /// <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>
    pub fn get_rule(&self) -> &::std::option::Option<crate::types::TelemetryRule> {
        self.inner.get_rule()
    }
    ///
    /// Adds a key-value pair to `Tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.tags(k.into(), v.into());
        self
    }
    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.inner = self.inner.set_tags(input);
        self
    }
    /// <p>The key-value pairs to associate with the telemetry rule resource for categorization and management purposes.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.inner.get_tags()
    }
}