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

com.pulumi.sumologic.inputs.CloudwatchSourcePathArgs Maven / Gradle / Ivy

The 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.sumologic.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.sumologic.inputs.CloudwatchSourcePathCustomServiceArgs;
import com.pulumi.sumologic.inputs.CloudwatchSourcePathSnsTopicOrSubscriptionArnArgs;
import com.pulumi.sumologic.inputs.CloudwatchSourcePathTagFilterArgs;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final CloudwatchSourcePathArgs Empty = new CloudwatchSourcePathArgs();

    @Import(name="bucketName")
    private @Nullable Output bucketName;

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

    @Import(name="consumerGroup")
    private @Nullable Output consumerGroup;

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

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

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

    @Import(name="eventHubName")
    private @Nullable Output eventHubName;

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

    /**
     * List of namespaces. By default all namespaces are selected. Details can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#aws%C2%A0tag-filtering-namespace-support). You can also  specify custom namespace.
     * 
     */
    @Import(name="limitToNamespaces")
    private @Nullable Output> limitToNamespaces;

    /**
     * @return List of namespaces. By default all namespaces are selected. Details can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#aws%C2%A0tag-filtering-namespace-support). You can also  specify custom namespace.
     * 
     */
    public Optional>> limitToNamespaces() {
        return Optional.ofNullable(this.limitToNamespaces);
    }

    /**
     * List of Amazon regions.
     * 
     */
    @Import(name="limitToRegions")
    private @Nullable Output> limitToRegions;

    /**
     * @return List of Amazon regions.
     * 
     */
    public Optional>> limitToRegions() {
        return Optional.ofNullable(this.limitToRegions);
    }

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

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

    /**
     * Namespace for which you want to define the tag filters. Use  value as `All` to apply the tag filter for all namespaces.
     * 
     */
    @Import(name="namespace")
    private @Nullable Output namespace;

    /**
     * @return Namespace for which you want to define the tag filters. Use  value as `All` to apply the tag filter for all namespaces.
     * 
     */
    public Optional> namespace() {
        return Optional.ofNullable(this.namespace);
    }

    @Import(name="pathExpression")
    private @Nullable Output pathExpression;

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

    /**
     * Your AWS Bucket region.
     * 
     */
    @Import(name="region")
    private @Nullable Output region;

    /**
     * @return Your AWS Bucket region.
     * 
     */
    public Optional> region() {
        return Optional.ofNullable(this.region);
    }

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

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

    /**
     * Tag filters allow you to filter the CloudWatch metrics you collect by the AWS tags you have assigned to your AWS resources. You can define tag filters for each supported namespace. If you do not define any tag filters, all metrics will be collected for the regions and namespaces you configured for the source above. More info on tag filters can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#about-aws-tag-filtering)
     * 
     */
    @Import(name="tagFilters")
    private @Nullable Output> tagFilters;

    /**
     * @return Tag filters allow you to filter the CloudWatch metrics you collect by the AWS tags you have assigned to your AWS resources. You can define tag filters for each supported namespace. If you do not define any tag filters, all metrics will be collected for the regions and namespaces you configured for the source above. More info on tag filters can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#about-aws-tag-filtering)
     * 
     */
    public Optional>> tagFilters() {
        return Optional.ofNullable(this.tagFilters);
    }

    /**
     * type of polling source. This has to be `CloudWatchPath` for CloudWatch source.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return type of polling source. This has to be `CloudWatchPath` for CloudWatch source.
     * 
     */
    public Output type() {
        return this.type;
    }

    @Import(name="useVersionedApi")
    private @Nullable Output useVersionedApi;

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

    private CloudwatchSourcePathArgs() {}

    private CloudwatchSourcePathArgs(CloudwatchSourcePathArgs $) {
        this.bucketName = $.bucketName;
        this.consumerGroup = $.consumerGroup;
        this.customServices = $.customServices;
        this.eventHubName = $.eventHubName;
        this.limitToNamespaces = $.limitToNamespaces;
        this.limitToRegions = $.limitToRegions;
        this.limitToServices = $.limitToServices;
        this.namespace = $.namespace;
        this.pathExpression = $.pathExpression;
        this.region = $.region;
        this.snsTopicOrSubscriptionArns = $.snsTopicOrSubscriptionArns;
        this.tagFilters = $.tagFilters;
        this.type = $.type;
        this.useVersionedApi = $.useVersionedApi;
    }

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

    public static final class Builder {
        private CloudwatchSourcePathArgs $;

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

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

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

        public Builder bucketName(String bucketName) {
            return bucketName(Output.of(bucketName));
        }

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

        public Builder consumerGroup(String consumerGroup) {
            return consumerGroup(Output.of(consumerGroup));
        }

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

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

        public Builder customServices(CloudwatchSourcePathCustomServiceArgs... customServices) {
            return customServices(List.of(customServices));
        }

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

        public Builder eventHubName(String eventHubName) {
            return eventHubName(Output.of(eventHubName));
        }

        /**
         * @param limitToNamespaces List of namespaces. By default all namespaces are selected. Details can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#aws%C2%A0tag-filtering-namespace-support). You can also  specify custom namespace.
         * 
         * @return builder
         * 
         */
        public Builder limitToNamespaces(@Nullable Output> limitToNamespaces) {
            $.limitToNamespaces = limitToNamespaces;
            return this;
        }

        /**
         * @param limitToNamespaces List of namespaces. By default all namespaces are selected. Details can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#aws%C2%A0tag-filtering-namespace-support). You can also  specify custom namespace.
         * 
         * @return builder
         * 
         */
        public Builder limitToNamespaces(List limitToNamespaces) {
            return limitToNamespaces(Output.of(limitToNamespaces));
        }

        /**
         * @param limitToNamespaces List of namespaces. By default all namespaces are selected. Details can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#aws%C2%A0tag-filtering-namespace-support). You can also  specify custom namespace.
         * 
         * @return builder
         * 
         */
        public Builder limitToNamespaces(String... limitToNamespaces) {
            return limitToNamespaces(List.of(limitToNamespaces));
        }

        /**
         * @param limitToRegions List of Amazon regions.
         * 
         * @return builder
         * 
         */
        public Builder limitToRegions(@Nullable Output> limitToRegions) {
            $.limitToRegions = limitToRegions;
            return this;
        }

        /**
         * @param limitToRegions List of Amazon regions.
         * 
         * @return builder
         * 
         */
        public Builder limitToRegions(List limitToRegions) {
            return limitToRegions(Output.of(limitToRegions));
        }

        /**
         * @param limitToRegions List of Amazon regions.
         * 
         * @return builder
         * 
         */
        public Builder limitToRegions(String... limitToRegions) {
            return limitToRegions(List.of(limitToRegions));
        }

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

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

        public Builder limitToServices(String... limitToServices) {
            return limitToServices(List.of(limitToServices));
        }

        /**
         * @param namespace Namespace for which you want to define the tag filters. Use  value as `All` to apply the tag filter for all namespaces.
         * 
         * @return builder
         * 
         */
        public Builder namespace(@Nullable Output namespace) {
            $.namespace = namespace;
            return this;
        }

        /**
         * @param namespace Namespace for which you want to define the tag filters. Use  value as `All` to apply the tag filter for all namespaces.
         * 
         * @return builder
         * 
         */
        public Builder namespace(String namespace) {
            return namespace(Output.of(namespace));
        }

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

        public Builder pathExpression(String pathExpression) {
            return pathExpression(Output.of(pathExpression));
        }

        /**
         * @param region Your AWS Bucket region.
         * 
         * @return builder
         * 
         */
        public Builder region(@Nullable Output region) {
            $.region = region;
            return this;
        }

        /**
         * @param region Your AWS Bucket region.
         * 
         * @return builder
         * 
         */
        public Builder region(String region) {
            return region(Output.of(region));
        }

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

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

        public Builder snsTopicOrSubscriptionArns(CloudwatchSourcePathSnsTopicOrSubscriptionArnArgs... snsTopicOrSubscriptionArns) {
            return snsTopicOrSubscriptionArns(List.of(snsTopicOrSubscriptionArns));
        }

        /**
         * @param tagFilters Tag filters allow you to filter the CloudWatch metrics you collect by the AWS tags you have assigned to your AWS resources. You can define tag filters for each supported namespace. If you do not define any tag filters, all metrics will be collected for the regions and namespaces you configured for the source above. More info on tag filters can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#about-aws-tag-filtering)
         * 
         * @return builder
         * 
         */
        public Builder tagFilters(@Nullable Output> tagFilters) {
            $.tagFilters = tagFilters;
            return this;
        }

        /**
         * @param tagFilters Tag filters allow you to filter the CloudWatch metrics you collect by the AWS tags you have assigned to your AWS resources. You can define tag filters for each supported namespace. If you do not define any tag filters, all metrics will be collected for the regions and namespaces you configured for the source above. More info on tag filters can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#about-aws-tag-filtering)
         * 
         * @return builder
         * 
         */
        public Builder tagFilters(List tagFilters) {
            return tagFilters(Output.of(tagFilters));
        }

        /**
         * @param tagFilters Tag filters allow you to filter the CloudWatch metrics you collect by the AWS tags you have assigned to your AWS resources. You can define tag filters for each supported namespace. If you do not define any tag filters, all metrics will be collected for the regions and namespaces you configured for the source above. More info on tag filters can be found [here](https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/Amazon-Web-Services/Amazon-CloudWatch-Source-for-Metrics#about-aws-tag-filtering)
         * 
         * @return builder
         * 
         */
        public Builder tagFilters(CloudwatchSourcePathTagFilterArgs... tagFilters) {
            return tagFilters(List.of(tagFilters));
        }

        /**
         * @param type type of polling source. This has to be `CloudWatchPath` for CloudWatch source.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type type of polling source. This has to be `CloudWatchPath` for CloudWatch source.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

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

        public Builder useVersionedApi(Boolean useVersionedApi) {
            return useVersionedApi(Output.of(useVersionedApi));
        }

        public CloudwatchSourcePathArgs build() {
            if ($.type == null) {
                throw new MissingRequiredPropertyException("CloudwatchSourcePathArgs", "type");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy