use super::{utils::*, *};
use crate::semconv;
impl<'a> AwsBuilderInstrument<'a> for PublishFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::publish(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for PublishOutput {
fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
attributes![
self.message_id()
.as_attribute(semconv::MESSAGING_MESSAGE_ID),
]
}
}
instrument_aws_operation!(aws_sdk_sns::operation::publish);
impl<'a> AwsBuilderInstrument<'a> for PublishBatchFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
let attributes = attributes![
self.get_publish_batch_request_entries()
.as_ref()
.map(|entries| entries.len())
.as_attribute(semconv::MESSAGING_BATCH_MESSAGE_COUNT)
];
SnsSpanBuilder::publish_batch(topic_arn).attributes(attributes)
}
}
impl InstrumentedFluentBuilderOutput for PublishBatchOutput {
fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
attributes![
self.failed()
.len()
.as_attribute("messaging.batch.message_count.failed"),
]
}
}
instrument_aws_operation!(aws_sdk_sns::operation::publish_batch);
impl<'a> AwsBuilderInstrument<'a> for CreateTopicFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::create_topic()
}
}
impl InstrumentedFluentBuilderOutput for CreateTopicOutput {
fn extract_attributes(&self) -> impl IntoIterator<Item = KeyValue> {
attributes![
self.topic_arn()
.as_attribute(semconv::MESSAGING_DESTINATION_NAME),
]
}
}
instrument_aws_operation!(aws_sdk_sns::operation::create_topic);
impl<'a> AwsBuilderInstrument<'a> for DeleteTopicFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::delete_topic(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for DeleteTopicOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::delete_topic);
impl<'a> AwsBuilderInstrument<'a> for GetTopicAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::get_topic_attributes(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for GetTopicAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::get_topic_attributes);
impl<'a> AwsBuilderInstrument<'a> for SetTopicAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::set_topic_attributes(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for SetTopicAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::set_topic_attributes);
impl<'a> AwsBuilderInstrument<'a> for ListTopicsFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_topics()
}
}
impl InstrumentedFluentBuilderOutput for ListTopicsOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_topics);
impl<'a> AwsBuilderInstrument<'a> for SubscribeFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::subscribe(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for SubscribeOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::subscribe);
impl<'a> AwsBuilderInstrument<'a> for UnsubscribeFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::unsubscribe()
}
}
impl InstrumentedFluentBuilderOutput for UnsubscribeOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::unsubscribe);
impl<'a> AwsBuilderInstrument<'a> for ConfirmSubscriptionFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::confirm_subscription(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for ConfirmSubscriptionOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::confirm_subscription);
impl<'a> AwsBuilderInstrument<'a> for ListSubscriptionsFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_subscriptions()
}
}
impl InstrumentedFluentBuilderOutput for ListSubscriptionsOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_subscriptions);
impl<'a> AwsBuilderInstrument<'a> for ListSubscriptionsByTopicFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::list_subscriptions_by_topic(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for ListSubscriptionsByTopicOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_subscriptions_by_topic);
impl<'a> AwsBuilderInstrument<'a> for GetSubscriptionAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_subscription_attributes()
}
}
impl InstrumentedFluentBuilderOutput for GetSubscriptionAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::get_subscription_attributes);
impl<'a> AwsBuilderInstrument<'a> for SetSubscriptionAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::set_subscription_attributes()
}
}
impl InstrumentedFluentBuilderOutput for SetSubscriptionAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::set_subscription_attributes);
impl<'a> AwsBuilderInstrument<'a> for AddPermissionFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::add_permission(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for AddPermissionOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::add_permission);
impl<'a> AwsBuilderInstrument<'a> for RemovePermissionFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
let topic_arn = self.get_topic_arn().clone().unwrap_or_default();
SnsSpanBuilder::remove_permission(topic_arn)
}
}
impl InstrumentedFluentBuilderOutput for RemovePermissionOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::remove_permission);
impl<'a> AwsBuilderInstrument<'a> for CreatePlatformApplicationFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::create_platform_application()
}
}
impl InstrumentedFluentBuilderOutput for CreatePlatformApplicationOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::create_platform_application);
impl<'a> AwsBuilderInstrument<'a> for DeletePlatformApplicationFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::delete_platform_application()
}
}
impl InstrumentedFluentBuilderOutput for DeletePlatformApplicationOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::delete_platform_application);
impl<'a> AwsBuilderInstrument<'a> for GetPlatformApplicationAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_platform_application_attributes()
}
}
impl InstrumentedFluentBuilderOutput for GetPlatformApplicationAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::get_platform_application_attributes);
impl<'a> AwsBuilderInstrument<'a> for SetPlatformApplicationAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::set_platform_application_attributes()
}
}
impl InstrumentedFluentBuilderOutput for SetPlatformApplicationAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::set_platform_application_attributes);
impl<'a> AwsBuilderInstrument<'a> for ListPlatformApplicationsFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_platform_applications()
}
}
impl InstrumentedFluentBuilderOutput for ListPlatformApplicationsOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_platform_applications);
impl<'a> AwsBuilderInstrument<'a> for CreatePlatformEndpointFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::create_platform_endpoint()
}
}
impl InstrumentedFluentBuilderOutput for CreatePlatformEndpointOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::create_platform_endpoint);
impl<'a> AwsBuilderInstrument<'a> for DeleteEndpointFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::delete_endpoint()
}
}
impl InstrumentedFluentBuilderOutput for DeleteEndpointOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::delete_endpoint);
impl<'a> AwsBuilderInstrument<'a> for GetEndpointAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_endpoint_attributes()
}
}
impl InstrumentedFluentBuilderOutput for GetEndpointAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::get_endpoint_attributes);
impl<'a> AwsBuilderInstrument<'a> for SetEndpointAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::set_endpoint_attributes()
}
}
impl InstrumentedFluentBuilderOutput for SetEndpointAttributesOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::set_endpoint_attributes);
impl<'a> AwsBuilderInstrument<'a> for ListEndpointsByPlatformApplicationFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_endpoints_by_platform_application()
}
}
impl InstrumentedFluentBuilderOutput for ListEndpointsByPlatformApplicationOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_endpoints_by_platform_application);
impl<'a> AwsBuilderInstrument<'a> for ListOriginationNumbersFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_origination_numbers()
}
}
impl InstrumentedFluentBuilderOutput for ListOriginationNumbersOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_origination_numbers);
impl<'a> AwsBuilderInstrument<'a> for CheckIfPhoneNumberIsOptedOutFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::check_if_phone_number_is_opted_out()
}
}
impl InstrumentedFluentBuilderOutput for CheckIfPhoneNumberIsOptedOutOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::check_if_phone_number_is_opted_out);
impl<'a> AwsBuilderInstrument<'a> for OptInPhoneNumberFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::opt_in_phone_number()
}
}
impl InstrumentedFluentBuilderOutput for OptInPhoneNumberOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::opt_in_phone_number);
impl<'a> AwsBuilderInstrument<'a> for ListPhoneNumbersOptedOutFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_phone_numbers_opted_out()
}
}
impl InstrumentedFluentBuilderOutput for ListPhoneNumbersOptedOutOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_phone_numbers_opted_out);
impl<'a> AwsBuilderInstrument<'a> for GetSMSAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_sms_attributes()
}
}
impl InstrumentedFluentBuilderOutput for GetSmsAttributesOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::get_sms_attributes,
GetSMSAttributesFluentBuilder,
GetSmsAttributesOutput,
GetSMSAttributesError
);
impl<'a> AwsBuilderInstrument<'a> for CreateSMSSandboxPhoneNumberFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::create_sms_sandbox_phone_number()
}
}
impl InstrumentedFluentBuilderOutput for CreateSmsSandboxPhoneNumberOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::create_sms_sandbox_phone_number,
CreateSMSSandboxPhoneNumberFluentBuilder,
CreateSmsSandboxPhoneNumberOutput,
CreateSMSSandboxPhoneNumberError
);
impl<'a> AwsBuilderInstrument<'a> for DeleteSMSSandboxPhoneNumberFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::delete_sms_sandbox_phone_number()
}
}
impl InstrumentedFluentBuilderOutput for DeleteSmsSandboxPhoneNumberOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::delete_sms_sandbox_phone_number,
DeleteSMSSandboxPhoneNumberFluentBuilder,
DeleteSmsSandboxPhoneNumberOutput,
DeleteSMSSandboxPhoneNumberError
);
impl<'a> AwsBuilderInstrument<'a> for GetSMSSandboxAccountStatusFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_sms_sandbox_account_status()
}
}
impl InstrumentedFluentBuilderOutput for GetSmsSandboxAccountStatusOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::get_sms_sandbox_account_status,
GetSMSSandboxAccountStatusFluentBuilder,
GetSmsSandboxAccountStatusOutput,
GetSMSSandboxAccountStatusError
);
impl<'a> AwsBuilderInstrument<'a> for ListSMSSandboxPhoneNumbersFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_sms_sandbox_phone_numbers()
}
}
impl InstrumentedFluentBuilderOutput for ListSmsSandboxPhoneNumbersOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::list_sms_sandbox_phone_numbers,
ListSMSSandboxPhoneNumbersFluentBuilder,
ListSmsSandboxPhoneNumbersOutput,
ListSMSSandboxPhoneNumbersError
);
impl<'a> AwsBuilderInstrument<'a> for VerifySMSSandboxPhoneNumberFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::verify_sms_sandbox_phone_number()
}
}
impl InstrumentedFluentBuilderOutput for VerifySmsSandboxPhoneNumberOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::verify_sms_sandbox_phone_number,
VerifySMSSandboxPhoneNumberFluentBuilder,
VerifySmsSandboxPhoneNumberOutput,
VerifySMSSandboxPhoneNumberError
);
impl<'a> AwsBuilderInstrument<'a> for SetSMSAttributesFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::set_sms_attributes()
}
}
impl InstrumentedFluentBuilderOutput for SetSmsAttributesOutput {}
instrument_aws_operation!(
aws_sdk_sns::operation::set_sms_attributes,
SetSMSAttributesFluentBuilder,
SetSmsAttributesOutput,
SetSMSAttributesError
);
impl<'a> AwsBuilderInstrument<'a> for GetDataProtectionPolicyFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::get_data_protection_policy()
}
}
impl InstrumentedFluentBuilderOutput for GetDataProtectionPolicyOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::get_data_protection_policy);
impl<'a> AwsBuilderInstrument<'a> for PutDataProtectionPolicyFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::put_data_protection_policy()
}
}
impl InstrumentedFluentBuilderOutput for PutDataProtectionPolicyOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::put_data_protection_policy);
impl<'a> AwsBuilderInstrument<'a> for ListTagsForResourceFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::list_tags_for_resource()
}
}
impl InstrumentedFluentBuilderOutput for ListTagsForResourceOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::list_tags_for_resource);
impl<'a> AwsBuilderInstrument<'a> for TagResourceFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::tag_resource()
}
}
impl InstrumentedFluentBuilderOutput for TagResourceOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::tag_resource);
impl<'a> AwsBuilderInstrument<'a> for UntagResourceFluentBuilder {
fn build_aws_span(&self) -> AwsSpanBuilder<'a> {
SnsSpanBuilder::untag_resource()
}
}
impl InstrumentedFluentBuilderOutput for UntagResourceOutput {}
instrument_aws_operation!(aws_sdk_sns::operation::untag_resource);