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

com.pulumi.sumologic.outputs.CloudfrontSourcePath Maven / Gradle / Ivy

// *** 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.outputs;

import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.sumologic.outputs.CloudfrontSourcePathCustomService;
import com.pulumi.sumologic.outputs.CloudfrontSourcePathSnsTopicOrSubscriptionArn;
import com.pulumi.sumologic.outputs.CloudfrontSourcePathTagFilter;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class CloudfrontSourcePath {
    /**
     * @return The name of the bucket. This is needed if using type `S3BucketPathExpression`.
     * 
     */
    private @Nullable String bucketName;
    private @Nullable String consumerGroup;
    private @Nullable List customServices;
    private @Nullable String eventHubName;
    private @Nullable List limitToNamespaces;
    private @Nullable List limitToRegions;
    private @Nullable List limitToServices;
    private @Nullable String namespace;
    /**
     * @return The path to the data. This is needed if using type `S3BucketPathExpression`.
     * 
     */
    private @Nullable String pathExpression;
    /**
     * @return Your AWS Bucket region.
     * 
     */
    private @Nullable String region;
    /**
     * @return This is a computed field for SNS topic/subscription ARN.
     * 
     */
    private @Nullable List snsTopicOrSubscriptionArns;
    private @Nullable List tagFilters;
    /**
     * @return type of polling source. This has to be `S3BucketPathExpression` for `CloudFront` source.
     * 
     */
    private String type;
    private @Nullable Boolean useVersionedApi;

    private CloudfrontSourcePath() {}
    /**
     * @return The name of the bucket. This is needed if using type `S3BucketPathExpression`.
     * 
     */
    public Optional bucketName() {
        return Optional.ofNullable(this.bucketName);
    }
    public Optional consumerGroup() {
        return Optional.ofNullable(this.consumerGroup);
    }
    public List customServices() {
        return this.customServices == null ? List.of() : this.customServices;
    }
    public Optional eventHubName() {
        return Optional.ofNullable(this.eventHubName);
    }
    public List limitToNamespaces() {
        return this.limitToNamespaces == null ? List.of() : this.limitToNamespaces;
    }
    public List limitToRegions() {
        return this.limitToRegions == null ? List.of() : this.limitToRegions;
    }
    public List limitToServices() {
        return this.limitToServices == null ? List.of() : this.limitToServices;
    }
    public Optional namespace() {
        return Optional.ofNullable(this.namespace);
    }
    /**
     * @return The path to the data. This is needed if using type `S3BucketPathExpression`.
     * 
     */
    public Optional pathExpression() {
        return Optional.ofNullable(this.pathExpression);
    }
    /**
     * @return Your AWS Bucket region.
     * 
     */
    public Optional region() {
        return Optional.ofNullable(this.region);
    }
    /**
     * @return This is a computed field for SNS topic/subscription ARN.
     * 
     */
    public List snsTopicOrSubscriptionArns() {
        return this.snsTopicOrSubscriptionArns == null ? List.of() : this.snsTopicOrSubscriptionArns;
    }
    public List tagFilters() {
        return this.tagFilters == null ? List.of() : this.tagFilters;
    }
    /**
     * @return type of polling source. This has to be `S3BucketPathExpression` for `CloudFront` source.
     * 
     */
    public String type() {
        return this.type;
    }
    public Optional useVersionedApi() {
        return Optional.ofNullable(this.useVersionedApi);
    }

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

    public static Builder builder(CloudfrontSourcePath defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String bucketName;
        private @Nullable String consumerGroup;
        private @Nullable List customServices;
        private @Nullable String eventHubName;
        private @Nullable List limitToNamespaces;
        private @Nullable List limitToRegions;
        private @Nullable List limitToServices;
        private @Nullable String namespace;
        private @Nullable String pathExpression;
        private @Nullable String region;
        private @Nullable List snsTopicOrSubscriptionArns;
        private @Nullable List tagFilters;
        private String type;
        private @Nullable Boolean useVersionedApi;
        public Builder() {}
        public Builder(CloudfrontSourcePath defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.bucketName = defaults.bucketName;
    	      this.consumerGroup = defaults.consumerGroup;
    	      this.customServices = defaults.customServices;
    	      this.eventHubName = defaults.eventHubName;
    	      this.limitToNamespaces = defaults.limitToNamespaces;
    	      this.limitToRegions = defaults.limitToRegions;
    	      this.limitToServices = defaults.limitToServices;
    	      this.namespace = defaults.namespace;
    	      this.pathExpression = defaults.pathExpression;
    	      this.region = defaults.region;
    	      this.snsTopicOrSubscriptionArns = defaults.snsTopicOrSubscriptionArns;
    	      this.tagFilters = defaults.tagFilters;
    	      this.type = defaults.type;
    	      this.useVersionedApi = defaults.useVersionedApi;
        }

        @CustomType.Setter
        public Builder bucketName(@Nullable String bucketName) {

            this.bucketName = bucketName;
            return this;
        }
        @CustomType.Setter
        public Builder consumerGroup(@Nullable String consumerGroup) {

            this.consumerGroup = consumerGroup;
            return this;
        }
        @CustomType.Setter
        public Builder customServices(@Nullable List customServices) {

            this.customServices = customServices;
            return this;
        }
        public Builder customServices(CloudfrontSourcePathCustomService... customServices) {
            return customServices(List.of(customServices));
        }
        @CustomType.Setter
        public Builder eventHubName(@Nullable String eventHubName) {

            this.eventHubName = eventHubName;
            return this;
        }
        @CustomType.Setter
        public Builder limitToNamespaces(@Nullable List limitToNamespaces) {

            this.limitToNamespaces = limitToNamespaces;
            return this;
        }
        public Builder limitToNamespaces(String... limitToNamespaces) {
            return limitToNamespaces(List.of(limitToNamespaces));
        }
        @CustomType.Setter
        public Builder limitToRegions(@Nullable List limitToRegions) {

            this.limitToRegions = limitToRegions;
            return this;
        }
        public Builder limitToRegions(String... limitToRegions) {
            return limitToRegions(List.of(limitToRegions));
        }
        @CustomType.Setter
        public Builder limitToServices(@Nullable List limitToServices) {

            this.limitToServices = limitToServices;
            return this;
        }
        public Builder limitToServices(String... limitToServices) {
            return limitToServices(List.of(limitToServices));
        }
        @CustomType.Setter
        public Builder namespace(@Nullable String namespace) {

            this.namespace = namespace;
            return this;
        }
        @CustomType.Setter
        public Builder pathExpression(@Nullable String pathExpression) {

            this.pathExpression = pathExpression;
            return this;
        }
        @CustomType.Setter
        public Builder region(@Nullable String region) {

            this.region = region;
            return this;
        }
        @CustomType.Setter
        public Builder snsTopicOrSubscriptionArns(@Nullable List snsTopicOrSubscriptionArns) {

            this.snsTopicOrSubscriptionArns = snsTopicOrSubscriptionArns;
            return this;
        }
        public Builder snsTopicOrSubscriptionArns(CloudfrontSourcePathSnsTopicOrSubscriptionArn... snsTopicOrSubscriptionArns) {
            return snsTopicOrSubscriptionArns(List.of(snsTopicOrSubscriptionArns));
        }
        @CustomType.Setter
        public Builder tagFilters(@Nullable List tagFilters) {

            this.tagFilters = tagFilters;
            return this;
        }
        public Builder tagFilters(CloudfrontSourcePathTagFilter... tagFilters) {
            return tagFilters(List.of(tagFilters));
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("CloudfrontSourcePath", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder useVersionedApi(@Nullable Boolean useVersionedApi) {

            this.useVersionedApi = useVersionedApi;
            return this;
        }
        public CloudfrontSourcePath build() {
            final var _resultValue = new CloudfrontSourcePath();
            _resultValue.bucketName = bucketName;
            _resultValue.consumerGroup = consumerGroup;
            _resultValue.customServices = customServices;
            _resultValue.eventHubName = eventHubName;
            _resultValue.limitToNamespaces = limitToNamespaces;
            _resultValue.limitToRegions = limitToRegions;
            _resultValue.limitToServices = limitToServices;
            _resultValue.namespace = namespace;
            _resultValue.pathExpression = pathExpression;
            _resultValue.region = region;
            _resultValue.snsTopicOrSubscriptionArns = snsTopicOrSubscriptionArns;
            _resultValue.tagFilters = tagFilters;
            _resultValue.type = type;
            _resultValue.useVersionedApi = useVersionedApi;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy