All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.iot.TopicRuleArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.iot;

import com.pulumi.aws.iot.inputs.TopicRuleCloudwatchAlarmArgs;
import com.pulumi.aws.iot.inputs.TopicRuleCloudwatchLogArgs;
import com.pulumi.aws.iot.inputs.TopicRuleCloudwatchMetricArgs;
import com.pulumi.aws.iot.inputs.TopicRuleDynamodbArgs;
import com.pulumi.aws.iot.inputs.TopicRuleDynamodbv2Args;
import com.pulumi.aws.iot.inputs.TopicRuleElasticsearchArgs;
import com.pulumi.aws.iot.inputs.TopicRuleErrorActionArgs;
import com.pulumi.aws.iot.inputs.TopicRuleFirehoseArgs;
import com.pulumi.aws.iot.inputs.TopicRuleHttpArgs;
import com.pulumi.aws.iot.inputs.TopicRuleIotAnalyticArgs;
import com.pulumi.aws.iot.inputs.TopicRuleIotEventArgs;
import com.pulumi.aws.iot.inputs.TopicRuleKafkaArgs;
import com.pulumi.aws.iot.inputs.TopicRuleKinesisArgs;
import com.pulumi.aws.iot.inputs.TopicRuleLambdaArgs;
import com.pulumi.aws.iot.inputs.TopicRuleRepublishArgs;
import com.pulumi.aws.iot.inputs.TopicRuleS3Args;
import com.pulumi.aws.iot.inputs.TopicRuleSnsArgs;
import com.pulumi.aws.iot.inputs.TopicRuleSqsArgs;
import com.pulumi.aws.iot.inputs.TopicRuleStepFunctionArgs;
import com.pulumi.aws.iot.inputs.TopicRuleTimestreamArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class TopicRuleArgs extends com.pulumi.resources.ResourceArgs {

    public static final TopicRuleArgs Empty = new TopicRuleArgs();

    @Import(name="cloudwatchAlarms")
    private @Nullable Output> cloudwatchAlarms;

    public Optional>> cloudwatchAlarms() {
        return Optional.ofNullable(this.cloudwatchAlarms);
    }

    @Import(name="cloudwatchLogs")
    private @Nullable Output> cloudwatchLogs;

    public Optional>> cloudwatchLogs() {
        return Optional.ofNullable(this.cloudwatchLogs);
    }

    @Import(name="cloudwatchMetrics")
    private @Nullable Output> cloudwatchMetrics;

    public Optional>> cloudwatchMetrics() {
        return Optional.ofNullable(this.cloudwatchMetrics);
    }

    /**
     * The description of the rule.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the rule.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    @Import(name="dynamodbs")
    private @Nullable Output> dynamodbs;

    public Optional>> dynamodbs() {
        return Optional.ofNullable(this.dynamodbs);
    }

    @Import(name="dynamodbv2s")
    private @Nullable Output> dynamodbv2s;

    public Optional>> dynamodbv2s() {
        return Optional.ofNullable(this.dynamodbv2s);
    }

    @Import(name="elasticsearch")
    private @Nullable Output> elasticsearch;

    public Optional>> elasticsearch() {
        return Optional.ofNullable(this.elasticsearch);
    }

    /**
     * Specifies whether the rule is enabled.
     * 
     */
    @Import(name="enabled", required=true)
    private Output enabled;

    /**
     * @return Specifies whether the rule is enabled.
     * 
     */
    public Output enabled() {
        return this.enabled;
    }

    /**
     * Configuration block with error action to be associated with the rule. See the documentation for `cloudwatch_alarm`, `cloudwatch_logs`, `cloudwatch_metric`, `dynamodb`, `dynamodbv2`, `elasticsearch`, `firehose`, `http`, `iot_analytics`, `iot_events`, `kafka`, `kinesis`, `lambda`, `republish`, `s3`, `sns`, `sqs`, `step_functions`, `timestream` configuration blocks for further configuration details.
     * 
     */
    @Import(name="errorAction")
    private @Nullable Output errorAction;

    /**
     * @return Configuration block with error action to be associated with the rule. See the documentation for `cloudwatch_alarm`, `cloudwatch_logs`, `cloudwatch_metric`, `dynamodb`, `dynamodbv2`, `elasticsearch`, `firehose`, `http`, `iot_analytics`, `iot_events`, `kafka`, `kinesis`, `lambda`, `republish`, `s3`, `sns`, `sqs`, `step_functions`, `timestream` configuration blocks for further configuration details.
     * 
     */
    public Optional> errorAction() {
        return Optional.ofNullable(this.errorAction);
    }

    @Import(name="firehoses")
    private @Nullable Output> firehoses;

    public Optional>> firehoses() {
        return Optional.ofNullable(this.firehoses);
    }

    @Import(name="https")
    private @Nullable Output> https;

    public Optional>> https() {
        return Optional.ofNullable(this.https);
    }

    @Import(name="iotAnalytics")
    private @Nullable Output> iotAnalytics;

    public Optional>> iotAnalytics() {
        return Optional.ofNullable(this.iotAnalytics);
    }

    @Import(name="iotEvents")
    private @Nullable Output> iotEvents;

    public Optional>> iotEvents() {
        return Optional.ofNullable(this.iotEvents);
    }

    @Import(name="kafkas")
    private @Nullable Output> kafkas;

    public Optional>> kafkas() {
        return Optional.ofNullable(this.kafkas);
    }

    @Import(name="kineses")
    private @Nullable Output> kineses;

    public Optional>> kineses() {
        return Optional.ofNullable(this.kineses);
    }

    @Import(name="lambdas")
    private @Nullable Output> lambdas;

    public Optional>> lambdas() {
        return Optional.ofNullable(this.lambdas);
    }

    /**
     * The name of the rule.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the rule.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    @Import(name="republishes")
    private @Nullable Output> republishes;

    public Optional>> republishes() {
        return Optional.ofNullable(this.republishes);
    }

    @Import(name="s3")
    private @Nullable Output> s3;

    public Optional>> s3() {
        return Optional.ofNullable(this.s3);
    }

    @Import(name="sns")
    private @Nullable Output> sns;

    public Optional>> sns() {
        return Optional.ofNullable(this.sns);
    }

    /**
     * The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
     * 
     */
    @Import(name="sql", required=true)
    private Output sql;

    /**
     * @return The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
     * 
     */
    public Output sql() {
        return this.sql;
    }

    /**
     * The version of the SQL rules engine to use when evaluating the rule.
     * 
     */
    @Import(name="sqlVersion", required=true)
    private Output sqlVersion;

    /**
     * @return The version of the SQL rules engine to use when evaluating the rule.
     * 
     */
    public Output sqlVersion() {
        return this.sqlVersion;
    }

    @Import(name="sqs")
    private @Nullable Output> sqs;

    public Optional>> sqs() {
        return Optional.ofNullable(this.sqs);
    }

    @Import(name="stepFunctions")
    private @Nullable Output> stepFunctions;

    public Optional>> stepFunctions() {
        return Optional.ofNullable(this.stepFunctions);
    }

    /**
     * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    @Import(name="timestreams")
    private @Nullable Output> timestreams;

    public Optional>> timestreams() {
        return Optional.ofNullable(this.timestreams);
    }

    private TopicRuleArgs() {}

    private TopicRuleArgs(TopicRuleArgs $) {
        this.cloudwatchAlarms = $.cloudwatchAlarms;
        this.cloudwatchLogs = $.cloudwatchLogs;
        this.cloudwatchMetrics = $.cloudwatchMetrics;
        this.description = $.description;
        this.dynamodbs = $.dynamodbs;
        this.dynamodbv2s = $.dynamodbv2s;
        this.elasticsearch = $.elasticsearch;
        this.enabled = $.enabled;
        this.errorAction = $.errorAction;
        this.firehoses = $.firehoses;
        this.https = $.https;
        this.iotAnalytics = $.iotAnalytics;
        this.iotEvents = $.iotEvents;
        this.kafkas = $.kafkas;
        this.kineses = $.kineses;
        this.lambdas = $.lambdas;
        this.name = $.name;
        this.republishes = $.republishes;
        this.s3 = $.s3;
        this.sns = $.sns;
        this.sql = $.sql;
        this.sqlVersion = $.sqlVersion;
        this.sqs = $.sqs;
        this.stepFunctions = $.stepFunctions;
        this.tags = $.tags;
        this.timestreams = $.timestreams;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(TopicRuleArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private TopicRuleArgs $;

        public Builder() {
            $ = new TopicRuleArgs();
        }

        public Builder(TopicRuleArgs defaults) {
            $ = new TopicRuleArgs(Objects.requireNonNull(defaults));
        }

        public Builder cloudwatchAlarms(@Nullable Output> cloudwatchAlarms) {
            $.cloudwatchAlarms = cloudwatchAlarms;
            return this;
        }

        public Builder cloudwatchAlarms(List cloudwatchAlarms) {
            return cloudwatchAlarms(Output.of(cloudwatchAlarms));
        }

        public Builder cloudwatchAlarms(TopicRuleCloudwatchAlarmArgs... cloudwatchAlarms) {
            return cloudwatchAlarms(List.of(cloudwatchAlarms));
        }

        public Builder cloudwatchLogs(@Nullable Output> cloudwatchLogs) {
            $.cloudwatchLogs = cloudwatchLogs;
            return this;
        }

        public Builder cloudwatchLogs(List cloudwatchLogs) {
            return cloudwatchLogs(Output.of(cloudwatchLogs));
        }

        public Builder cloudwatchLogs(TopicRuleCloudwatchLogArgs... cloudwatchLogs) {
            return cloudwatchLogs(List.of(cloudwatchLogs));
        }

        public Builder cloudwatchMetrics(@Nullable Output> cloudwatchMetrics) {
            $.cloudwatchMetrics = cloudwatchMetrics;
            return this;
        }

        public Builder cloudwatchMetrics(List cloudwatchMetrics) {
            return cloudwatchMetrics(Output.of(cloudwatchMetrics));
        }

        public Builder cloudwatchMetrics(TopicRuleCloudwatchMetricArgs... cloudwatchMetrics) {
            return cloudwatchMetrics(List.of(cloudwatchMetrics));
        }

        /**
         * @param description The description of the rule.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the rule.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        public Builder dynamodbs(@Nullable Output> dynamodbs) {
            $.dynamodbs = dynamodbs;
            return this;
        }

        public Builder dynamodbs(List dynamodbs) {
            return dynamodbs(Output.of(dynamodbs));
        }

        public Builder dynamodbs(TopicRuleDynamodbArgs... dynamodbs) {
            return dynamodbs(List.of(dynamodbs));
        }

        public Builder dynamodbv2s(@Nullable Output> dynamodbv2s) {
            $.dynamodbv2s = dynamodbv2s;
            return this;
        }

        public Builder dynamodbv2s(List dynamodbv2s) {
            return dynamodbv2s(Output.of(dynamodbv2s));
        }

        public Builder dynamodbv2s(TopicRuleDynamodbv2Args... dynamodbv2s) {
            return dynamodbv2s(List.of(dynamodbv2s));
        }

        public Builder elasticsearch(@Nullable Output> elasticsearch) {
            $.elasticsearch = elasticsearch;
            return this;
        }

        public Builder elasticsearch(List elasticsearch) {
            return elasticsearch(Output.of(elasticsearch));
        }

        public Builder elasticsearch(TopicRuleElasticsearchArgs... elasticsearch) {
            return elasticsearch(List.of(elasticsearch));
        }

        /**
         * @param enabled Specifies whether the rule is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Specifies whether the rule is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param errorAction Configuration block with error action to be associated with the rule. See the documentation for `cloudwatch_alarm`, `cloudwatch_logs`, `cloudwatch_metric`, `dynamodb`, `dynamodbv2`, `elasticsearch`, `firehose`, `http`, `iot_analytics`, `iot_events`, `kafka`, `kinesis`, `lambda`, `republish`, `s3`, `sns`, `sqs`, `step_functions`, `timestream` configuration blocks for further configuration details.
         * 
         * @return builder
         * 
         */
        public Builder errorAction(@Nullable Output errorAction) {
            $.errorAction = errorAction;
            return this;
        }

        /**
         * @param errorAction Configuration block with error action to be associated with the rule. See the documentation for `cloudwatch_alarm`, `cloudwatch_logs`, `cloudwatch_metric`, `dynamodb`, `dynamodbv2`, `elasticsearch`, `firehose`, `http`, `iot_analytics`, `iot_events`, `kafka`, `kinesis`, `lambda`, `republish`, `s3`, `sns`, `sqs`, `step_functions`, `timestream` configuration blocks for further configuration details.
         * 
         * @return builder
         * 
         */
        public Builder errorAction(TopicRuleErrorActionArgs errorAction) {
            return errorAction(Output.of(errorAction));
        }

        public Builder firehoses(@Nullable Output> firehoses) {
            $.firehoses = firehoses;
            return this;
        }

        public Builder firehoses(List firehoses) {
            return firehoses(Output.of(firehoses));
        }

        public Builder firehoses(TopicRuleFirehoseArgs... firehoses) {
            return firehoses(List.of(firehoses));
        }

        public Builder https(@Nullable Output> https) {
            $.https = https;
            return this;
        }

        public Builder https(List https) {
            return https(Output.of(https));
        }

        public Builder https(TopicRuleHttpArgs... https) {
            return https(List.of(https));
        }

        public Builder iotAnalytics(@Nullable Output> iotAnalytics) {
            $.iotAnalytics = iotAnalytics;
            return this;
        }

        public Builder iotAnalytics(List iotAnalytics) {
            return iotAnalytics(Output.of(iotAnalytics));
        }

        public Builder iotAnalytics(TopicRuleIotAnalyticArgs... iotAnalytics) {
            return iotAnalytics(List.of(iotAnalytics));
        }

        public Builder iotEvents(@Nullable Output> iotEvents) {
            $.iotEvents = iotEvents;
            return this;
        }

        public Builder iotEvents(List iotEvents) {
            return iotEvents(Output.of(iotEvents));
        }

        public Builder iotEvents(TopicRuleIotEventArgs... iotEvents) {
            return iotEvents(List.of(iotEvents));
        }

        public Builder kafkas(@Nullable Output> kafkas) {
            $.kafkas = kafkas;
            return this;
        }

        public Builder kafkas(List kafkas) {
            return kafkas(Output.of(kafkas));
        }

        public Builder kafkas(TopicRuleKafkaArgs... kafkas) {
            return kafkas(List.of(kafkas));
        }

        public Builder kineses(@Nullable Output> kineses) {
            $.kineses = kineses;
            return this;
        }

        public Builder kineses(List kineses) {
            return kineses(Output.of(kineses));
        }

        public Builder kineses(TopicRuleKinesisArgs... kineses) {
            return kineses(List.of(kineses));
        }

        public Builder lambdas(@Nullable Output> lambdas) {
            $.lambdas = lambdas;
            return this;
        }

        public Builder lambdas(List lambdas) {
            return lambdas(Output.of(lambdas));
        }

        public Builder lambdas(TopicRuleLambdaArgs... lambdas) {
            return lambdas(List.of(lambdas));
        }

        /**
         * @param name The name of the rule.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the rule.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public Builder republishes(@Nullable Output> republishes) {
            $.republishes = republishes;
            return this;
        }

        public Builder republishes(List republishes) {
            return republishes(Output.of(republishes));
        }

        public Builder republishes(TopicRuleRepublishArgs... republishes) {
            return republishes(List.of(republishes));
        }

        public Builder s3(@Nullable Output> s3) {
            $.s3 = s3;
            return this;
        }

        public Builder s3(List s3) {
            return s3(Output.of(s3));
        }

        public Builder s3(TopicRuleS3Args... s3) {
            return s3(List.of(s3));
        }

        public Builder sns(@Nullable Output> sns) {
            $.sns = sns;
            return this;
        }

        public Builder sns(List sns) {
            return sns(Output.of(sns));
        }

        public Builder sns(TopicRuleSnsArgs... sns) {
            return sns(List.of(sns));
        }

        /**
         * @param sql The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
         * 
         * @return builder
         * 
         */
        public Builder sql(Output sql) {
            $.sql = sql;
            return this;
        }

        /**
         * @param sql The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
         * 
         * @return builder
         * 
         */
        public Builder sql(String sql) {
            return sql(Output.of(sql));
        }

        /**
         * @param sqlVersion The version of the SQL rules engine to use when evaluating the rule.
         * 
         * @return builder
         * 
         */
        public Builder sqlVersion(Output sqlVersion) {
            $.sqlVersion = sqlVersion;
            return this;
        }

        /**
         * @param sqlVersion The version of the SQL rules engine to use when evaluating the rule.
         * 
         * @return builder
         * 
         */
        public Builder sqlVersion(String sqlVersion) {
            return sqlVersion(Output.of(sqlVersion));
        }

        public Builder sqs(@Nullable Output> sqs) {
            $.sqs = sqs;
            return this;
        }

        public Builder sqs(List sqs) {
            return sqs(Output.of(sqs));
        }

        public Builder sqs(TopicRuleSqsArgs... sqs) {
            return sqs(List.of(sqs));
        }

        public Builder stepFunctions(@Nullable Output> stepFunctions) {
            $.stepFunctions = stepFunctions;
            return this;
        }

        public Builder stepFunctions(List stepFunctions) {
            return stepFunctions(Output.of(stepFunctions));
        }

        public Builder stepFunctions(TopicRuleStepFunctionArgs... stepFunctions) {
            return stepFunctions(List.of(stepFunctions));
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public Builder timestreams(@Nullable Output> timestreams) {
            $.timestreams = timestreams;
            return this;
        }

        public Builder timestreams(List timestreams) {
            return timestreams(Output.of(timestreams));
        }

        public Builder timestreams(TopicRuleTimestreamArgs... timestreams) {
            return timestreams(List.of(timestreams));
        }

        public TopicRuleArgs build() {
            if ($.enabled == null) {
                throw new MissingRequiredPropertyException("TopicRuleArgs", "enabled");
            }
            if ($.sql == null) {
                throw new MissingRequiredPropertyException("TopicRuleArgs", "sql");
            }
            if ($.sqlVersion == null) {
                throw new MissingRequiredPropertyException("TopicRuleArgs", "sqlVersion");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy