Class: AWSCDK::IoT::CfnTopicRule::ActionProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
io_t/cfn_topic_rule.rb

Overview

Describes the actions associated with a rule.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cloudwatch_alarm: nil, cloudwatch_logs: nil, cloudwatch_metric: nil, dynamo_db: nil, dynamo_d_bv2: nil, elasticsearch: nil, firehose: nil, http: nil, iot_analytics: nil, iot_events: nil, iot_site_wise: nil, kafka: nil, kinesis: nil, lambda: nil, location: nil, open_search: nil, republish: nil, s3: nil, sns: nil, sqs: nil, step_functions: nil, timestream: nil) ⇒ ActionProperty

Returns a new instance of ActionProperty.

Parameters:



593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
# File 'io_t/cfn_topic_rule.rb', line 593

def initialize(cloudwatch_alarm: nil, cloudwatch_logs: nil, cloudwatch_metric: nil, dynamo_db: nil, dynamo_d_bv2: nil, elasticsearch: nil, firehose: nil, http: nil, iot_analytics: nil, iot_events: nil, iot_site_wise: nil, kafka: nil, kinesis: nil, lambda: nil, location: nil, open_search: nil, republish: nil, s3: nil, sns: nil, sqs: nil, step_functions: nil, timestream: nil)
  @cloudwatch_alarm = cloudwatch_alarm.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::CloudwatchAlarmActionProperty.new(**cloudwatch_alarm.transform_keys(&:to_sym)) : cloudwatch_alarm
  Jsii::Type.check_type(@cloudwatch_alarm, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkNsb3Vkd2F0Y2hBbGFybUFjdGlvblByb3BlcnR5In1dfX0=")), "cloudwatchAlarm") unless @cloudwatch_alarm.nil?
  @cloudwatch_logs = cloudwatch_logs.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::CloudwatchLogsActionProperty.new(**cloudwatch_logs.transform_keys(&:to_sym)) : cloudwatch_logs
  Jsii::Type.check_type(@cloudwatch_logs, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkNsb3Vkd2F0Y2hMb2dzQWN0aW9uUHJvcGVydHkifV19fQ==")), "cloudwatchLogs") unless @cloudwatch_logs.nil?
  @cloudwatch_metric = cloudwatch_metric.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::CloudwatchMetricActionProperty.new(**cloudwatch_metric.transform_keys(&:to_sym)) : cloudwatch_metric
  Jsii::Type.check_type(@cloudwatch_metric, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkNsb3Vkd2F0Y2hNZXRyaWNBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "cloudwatchMetric") unless @cloudwatch_metric.nil?
  @dynamo_db = dynamo_db.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::DynamoDBActionProperty.new(**dynamo_db.transform_keys(&:to_sym)) : dynamo_db
  Jsii::Type.check_type(@dynamo_db, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkR5bmFtb0RCQWN0aW9uUHJvcGVydHkifV19fQ==")), "dynamoDb") unless @dynamo_db.nil?
  @dynamo_d_bv2 = dynamo_d_bv2.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::DynamoDBv2ActionProperty.new(**dynamo_d_bv2.transform_keys(&:to_sym)) : dynamo_d_bv2
  Jsii::Type.check_type(@dynamo_d_bv2, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkR5bmFtb0RCdjJBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "dynamoDBv2") unless @dynamo_d_bv2.nil?
  @elasticsearch = elasticsearch.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::ElasticsearchActionProperty.new(**elasticsearch.transform_keys(&:to_sym)) : elasticsearch
  Jsii::Type.check_type(@elasticsearch, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkVsYXN0aWNzZWFyY2hBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "elasticsearch") unless @elasticsearch.nil?
  @firehose = firehose.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::FirehoseActionProperty.new(**firehose.transform_keys(&:to_sym)) : firehose
  Jsii::Type.check_type(@firehose, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkZpcmVob3NlQWN0aW9uUHJvcGVydHkifV19fQ==")), "firehose") unless @firehose.nil?
  @http = http.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::HttpActionProperty.new(**http.transform_keys(&:to_sym)) : http
  Jsii::Type.check_type(@http, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkh0dHBBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "http") unless @http.nil?
  @iot_analytics = iot_analytics.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::IotAnalyticsActionProperty.new(**iot_analytics.transform_keys(&:to_sym)) : iot_analytics
  Jsii::Type.check_type(@iot_analytics, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLklvdEFuYWx5dGljc0FjdGlvblByb3BlcnR5In1dfX0=")), "iotAnalytics") unless @iot_analytics.nil?
  @iot_events = iot_events.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::IotEventsActionProperty.new(**iot_events.transform_keys(&:to_sym)) : iot_events
  Jsii::Type.check_type(@iot_events, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLklvdEV2ZW50c0FjdGlvblByb3BlcnR5In1dfX0=")), "iotEvents") unless @iot_events.nil?
  @iot_site_wise = iot_site_wise.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::IotSiteWiseActionProperty.new(**iot_site_wise.transform_keys(&:to_sym)) : iot_site_wise
  Jsii::Type.check_type(@iot_site_wise, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLklvdFNpdGVXaXNlQWN0aW9uUHJvcGVydHkifV19fQ==")), "iotSiteWise") unless @iot_site_wise.nil?
  @kafka = kafka.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::KafkaActionProperty.new(**kafka.transform_keys(&:to_sym)) : kafka
  Jsii::Type.check_type(@kafka, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkthZmthQWN0aW9uUHJvcGVydHkifV19fQ==")), "kafka") unless @kafka.nil?
  @kinesis = kinesis.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::KinesisActionProperty.new(**kinesis.transform_keys(&:to_sym)) : kinesis
  Jsii::Type.check_type(@kinesis, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLktpbmVzaXNBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "kinesis") unless @kinesis.nil?
  @lambda = lambda.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::LambdaActionProperty.new(**lambda.transform_keys(&:to_sym)) : lambda
  Jsii::Type.check_type(@lambda, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkxhbWJkYUFjdGlvblByb3BlcnR5In1dfX0=")), "lambda") unless @lambda.nil?
  @location = location.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::LocationActionProperty.new(**location.transform_keys(&:to_sym)) : location
  Jsii::Type.check_type(@location, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLkxvY2F0aW9uQWN0aW9uUHJvcGVydHkifV19fQ==")), "location") unless @location.nil?
  @open_search = open_search.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::OpenSearchActionProperty.new(**open_search.transform_keys(&:to_sym)) : open_search
  Jsii::Type.check_type(@open_search, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLk9wZW5TZWFyY2hBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "openSearch") unless @open_search.nil?
  @republish = republish.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::RepublishActionProperty.new(**republish.transform_keys(&:to_sym)) : republish
  Jsii::Type.check_type(@republish, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlJlcHVibGlzaEFjdGlvblByb3BlcnR5In1dfX0=")), "republish") unless @republish.nil?
  @s3 = s3.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::S3ActionProperty.new(**s3.transform_keys(&:to_sym)) : s3
  Jsii::Type.check_type(@s3, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlMzQWN0aW9uUHJvcGVydHkifV19fQ==")), "s3") unless @s3.nil?
  @sns = sns.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::SNSActionProperty.new(**sns.transform_keys(&:to_sym)) : sns
  Jsii::Type.check_type(@sns, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlNuc0FjdGlvblByb3BlcnR5In1dfX0=")), "sns") unless @sns.nil?
  @sqs = sqs.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::SQSActionProperty.new(**sqs.transform_keys(&:to_sym)) : sqs
  Jsii::Type.check_type(@sqs, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlNxc0FjdGlvblByb3BlcnR5In1dfX0=")), "sqs") unless @sqs.nil?
  @step_functions = step_functions.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::StepFunctionsActionProperty.new(**step_functions.transform_keys(&:to_sym)) : step_functions
  Jsii::Type.check_type(@step_functions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlN0ZXBGdW5jdGlvbnNBY3Rpb25Qcm9wZXJ0eSJ9XX19")), "stepFunctions") unless @step_functions.nil?
  @timestream = timestream.is_a?(Hash) ? ::AWSCDK::IoT::CfnTopicRule::TimestreamActionProperty.new(**timestream.transform_keys(&:to_sym)) : timestream
  Jsii::Type.check_type(@timestream, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pb3QuQ2ZuVG9waWNSdWxlLlRpbWVzdHJlYW1BY3Rpb25Qcm9wZXJ0eSJ9XX19")), "timestream") unless @timestream.nil?
end

Instance Attribute Details

#cloudwatch_alarmAWSCDK::IResolvable, ... (readonly)

Change the state of a CloudWatch alarm.



644
645
646
# File 'io_t/cfn_topic_rule.rb', line 644

def cloudwatch_alarm
  @cloudwatch_alarm
end

#cloudwatch_logsAWSCDK::IResolvable, ... (readonly)

Sends data to CloudWatch.



649
650
651
# File 'io_t/cfn_topic_rule.rb', line 649

def cloudwatch_logs
  @cloudwatch_logs
end

#cloudwatch_metricAWSCDK::IResolvable, ... (readonly)

Capture a CloudWatch metric.



654
655
656
# File 'io_t/cfn_topic_rule.rb', line 654

def cloudwatch_metric
  @cloudwatch_metric
end

#dynamo_d_bv2AWSCDK::IResolvable, ... (readonly)

Write to a DynamoDB table.

This is a new version of the DynamoDB action. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column.



666
667
668
# File 'io_t/cfn_topic_rule.rb', line 666

def dynamo_d_bv2
  @dynamo_d_bv2
end

#dynamo_dbAWSCDK::IResolvable, ... (readonly)

Write to a DynamoDB table.



659
660
661
# File 'io_t/cfn_topic_rule.rb', line 659

def dynamo_db
  @dynamo_db
end

#elasticsearchAWSCDK::IResolvable, ... (readonly)

Write data to an Amazon OpenSearch Service domain.

The Elasticsearch action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the OpenSearch rule action instead. For more information, see OpenSearchAction .



673
674
675
# File 'io_t/cfn_topic_rule.rb', line 673

def elasticsearch
  @elasticsearch
end

#firehoseAWSCDK::IResolvable, ... (readonly)

Write to an Amazon Kinesis Firehose stream.



678
679
680
# File 'io_t/cfn_topic_rule.rb', line 678

def firehose
  @firehose
end

#httpAWSCDK::IResolvable, ... (readonly)

Send data to an HTTPS endpoint.



683
684
685
# File 'io_t/cfn_topic_rule.rb', line 683

def http
  @http
end

#iot_analyticsAWSCDK::IResolvable, ... (readonly)

Sends message data to an AWS IoT Analytics channel.



688
689
690
# File 'io_t/cfn_topic_rule.rb', line 688

def iot_analytics
  @iot_analytics
end

#iot_eventsAWSCDK::IResolvable, ... (readonly)

Sends an input to an AWS IoT Events detector.



693
694
695
# File 'io_t/cfn_topic_rule.rb', line 693

def iot_events
  @iot_events
end

#iot_site_wiseAWSCDK::IResolvable, ... (readonly)

Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.



698
699
700
# File 'io_t/cfn_topic_rule.rb', line 698

def iot_site_wise
  @iot_site_wise
end

#kafkaAWSCDK::IResolvable, ... (readonly)

Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.



703
704
705
# File 'io_t/cfn_topic_rule.rb', line 703

def kafka
  @kafka
end

#kinesisAWSCDK::IResolvable, ... (readonly)

Write data to an Amazon Kinesis stream.



708
709
710
# File 'io_t/cfn_topic_rule.rb', line 708

def kinesis
  @kinesis
end

#lambdaAWSCDK::IResolvable, ... (readonly)

Invoke a Lambda function.



713
714
715
# File 'io_t/cfn_topic_rule.rb', line 713

def lambda
  @lambda
end

#locationAWSCDK::IResolvable, ... (readonly)

Sends device location data to Amazon Location Service .



718
719
720
# File 'io_t/cfn_topic_rule.rb', line 718

def location
  @location
end

#open_searchAWSCDK::IResolvable, ... (readonly)

Write data to an Amazon OpenSearch Service domain.



723
724
725
# File 'io_t/cfn_topic_rule.rb', line 723

def open_search
  @open_search
end

#republishAWSCDK::IResolvable, ... (readonly)

Publish to another MQTT topic.



728
729
730
# File 'io_t/cfn_topic_rule.rb', line 728

def republish
  @republish
end

#s3AWSCDK::IResolvable, ... (readonly)

Write to an Amazon S3 bucket.



733
734
735
# File 'io_t/cfn_topic_rule.rb', line 733

def s3
  @s3
end

#snsAWSCDK::IResolvable, ... (readonly)

Publish to an Amazon SNS topic.



738
739
740
# File 'io_t/cfn_topic_rule.rb', line 738

def sns
  @sns
end

#sqsAWSCDK::IResolvable, ... (readonly)

Publish to an Amazon SQS queue.



743
744
745
# File 'io_t/cfn_topic_rule.rb', line 743

def sqs
  @sqs
end

#step_functionsAWSCDK::IResolvable, ... (readonly)

Starts execution of a Step Functions state machine.



748
749
750
# File 'io_t/cfn_topic_rule.rb', line 748

def step_functions
  @step_functions
end

#timestreamAWSCDK::IResolvable, ... (readonly)

Writes attributes from an MQTT message.



753
754
755
# File 'io_t/cfn_topic_rule.rb', line 753

def timestream
  @timestream
end

Class Method Details

.jsii_propertiesObject



755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
# File 'io_t/cfn_topic_rule.rb', line 755

def self.jsii_properties
  {
    :cloudwatch_alarm => "cloudwatchAlarm",
    :cloudwatch_logs => "cloudwatchLogs",
    :cloudwatch_metric => "cloudwatchMetric",
    :dynamo_db => "dynamoDb",
    :dynamo_d_bv2 => "dynamoDBv2",
    :elasticsearch => "elasticsearch",
    :firehose => "firehose",
    :http => "http",
    :iot_analytics => "iotAnalytics",
    :iot_events => "iotEvents",
    :iot_site_wise => "iotSiteWise",
    :kafka => "kafka",
    :kinesis => "kinesis",
    :lambda => "lambda",
    :location => "location",
    :open_search => "openSearch",
    :republish => "republish",
    :s3 => "s3",
    :sns => "sns",
    :sqs => "sqs",
    :step_functions => "stepFunctions",
    :timestream => "timestream",
  }
end

Instance Method Details

#to_jsiiObject



782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
# File 'io_t/cfn_topic_rule.rb', line 782

def to_jsii
  result = {}
  result.merge!({
    "cloudwatchAlarm" => @cloudwatch_alarm,
    "cloudwatchLogs" => @cloudwatch_logs,
    "cloudwatchMetric" => @cloudwatch_metric,
    "dynamoDb" => @dynamo_db,
    "dynamoDBv2" => @dynamo_d_bv2,
    "elasticsearch" => @elasticsearch,
    "firehose" => @firehose,
    "http" => @http,
    "iotAnalytics" => @iot_analytics,
    "iotEvents" => @iot_events,
    "iotSiteWise" => @iot_site_wise,
    "kafka" => @kafka,
    "kinesis" => @kinesis,
    "lambda" => @lambda,
    "location" => @location,
    "openSearch" => @open_search,
    "republish" => @republish,
    "s3" => @s3,
    "sns" => @sns,
    "sqs" => @sqs,
    "stepFunctions" => @step_functions,
    "timestream" => @timestream,
  })
  result.compact
end