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

com.pulumi.aws.customerprofiles.DomainArgs 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.customerprofiles;

import com.pulumi.aws.customerprofiles.inputs.DomainMatchingArgs;
import com.pulumi.aws.customerprofiles.inputs.DomainRuleBasedMatchingArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DomainArgs Empty = new DomainArgs();

    /**
     * The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
     * 
     */
    @Import(name="deadLetterQueueUrl")
    private @Nullable Output deadLetterQueueUrl;

    /**
     * @return The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
     * 
     */
    public Optional> deadLetterQueueUrl() {
        return Optional.ofNullable(this.deadLetterQueueUrl);
    }

    /**
     * The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
     * 
     */
    @Import(name="defaultEncryptionKey")
    private @Nullable Output defaultEncryptionKey;

    /**
     * @return The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
     * 
     */
    public Optional> defaultEncryptionKey() {
        return Optional.ofNullable(this.defaultEncryptionKey);
    }

    /**
     * The default number of days until the data within the domain expires.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="defaultExpirationDays", required=true)
    private Output defaultExpirationDays;

    /**
     * @return The default number of days until the data within the domain expires.
     * 
     * The following arguments are optional:
     * 
     */
    public Output defaultExpirationDays() {
        return this.defaultExpirationDays;
    }

    /**
     * The name for your Customer Profile domain. It must be unique for your AWS account.
     * 
     */
    @Import(name="domainName", required=true)
    private Output domainName;

    /**
     * @return The name for your Customer Profile domain. It must be unique for your AWS account.
     * 
     */
    public Output domainName() {
        return this.domainName;
    }

    /**
     * A block that specifies the process of matching duplicate profiles. Documented below.
     * 
     */
    @Import(name="matching")
    private @Nullable Output matching;

    /**
     * @return A block that specifies the process of matching duplicate profiles. Documented below.
     * 
     */
    public Optional> matching() {
        return Optional.ofNullable(this.matching);
    }

    /**
     * A block that specifies the process of matching duplicate profiles using the Rule-Based matching. Documented below.
     * 
     */
    @Import(name="ruleBasedMatching")
    private @Nullable Output ruleBasedMatching;

    /**
     * @return A block that specifies the process of matching duplicate profiles using the Rule-Based matching. Documented below.
     * 
     */
    public Optional> ruleBasedMatching() {
        return Optional.ofNullable(this.ruleBasedMatching);
    }

    /**
     * Tags to apply to the domain. 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 Tags to apply to the domain. 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);
    }

    private DomainArgs() {}

    private DomainArgs(DomainArgs $) {
        this.deadLetterQueueUrl = $.deadLetterQueueUrl;
        this.defaultEncryptionKey = $.defaultEncryptionKey;
        this.defaultExpirationDays = $.defaultExpirationDays;
        this.domainName = $.domainName;
        this.matching = $.matching;
        this.ruleBasedMatching = $.ruleBasedMatching;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private DomainArgs $;

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

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

        /**
         * @param deadLetterQueueUrl The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterQueueUrl(@Nullable Output deadLetterQueueUrl) {
            $.deadLetterQueueUrl = deadLetterQueueUrl;
            return this;
        }

        /**
         * @param deadLetterQueueUrl The URL of the SQS dead letter queue, which is used for reporting errors associated with ingesting data from third party applications.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterQueueUrl(String deadLetterQueueUrl) {
            return deadLetterQueueUrl(Output.of(deadLetterQueueUrl));
        }

        /**
         * @param defaultEncryptionKey The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
         * 
         * @return builder
         * 
         */
        public Builder defaultEncryptionKey(@Nullable Output defaultEncryptionKey) {
            $.defaultEncryptionKey = defaultEncryptionKey;
            return this;
        }

        /**
         * @param defaultEncryptionKey The default encryption key, which is an AWS managed key, is used when no specific type of encryption key is specified. It is used to encrypt all data before it is placed in permanent or semi-permanent storage.
         * 
         * @return builder
         * 
         */
        public Builder defaultEncryptionKey(String defaultEncryptionKey) {
            return defaultEncryptionKey(Output.of(defaultEncryptionKey));
        }

        /**
         * @param defaultExpirationDays The default number of days until the data within the domain expires.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder defaultExpirationDays(Output defaultExpirationDays) {
            $.defaultExpirationDays = defaultExpirationDays;
            return this;
        }

        /**
         * @param defaultExpirationDays The default number of days until the data within the domain expires.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder defaultExpirationDays(Integer defaultExpirationDays) {
            return defaultExpirationDays(Output.of(defaultExpirationDays));
        }

        /**
         * @param domainName The name for your Customer Profile domain. It must be unique for your AWS account.
         * 
         * @return builder
         * 
         */
        public Builder domainName(Output domainName) {
            $.domainName = domainName;
            return this;
        }

        /**
         * @param domainName The name for your Customer Profile domain. It must be unique for your AWS account.
         * 
         * @return builder
         * 
         */
        public Builder domainName(String domainName) {
            return domainName(Output.of(domainName));
        }

        /**
         * @param matching A block that specifies the process of matching duplicate profiles. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder matching(@Nullable Output matching) {
            $.matching = matching;
            return this;
        }

        /**
         * @param matching A block that specifies the process of matching duplicate profiles. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder matching(DomainMatchingArgs matching) {
            return matching(Output.of(matching));
        }

        /**
         * @param ruleBasedMatching A block that specifies the process of matching duplicate profiles using the Rule-Based matching. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder ruleBasedMatching(@Nullable Output ruleBasedMatching) {
            $.ruleBasedMatching = ruleBasedMatching;
            return this;
        }

        /**
         * @param ruleBasedMatching A block that specifies the process of matching duplicate profiles using the Rule-Based matching. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder ruleBasedMatching(DomainRuleBasedMatchingArgs ruleBasedMatching) {
            return ruleBasedMatching(Output.of(ruleBasedMatching));
        }

        /**
         * @param tags Tags to apply to the domain. 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 Tags to apply to the domain. 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 DomainArgs build() {
            if ($.defaultExpirationDays == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "defaultExpirationDays");
            }
            if ($.domainName == null) {
                throw new MissingRequiredPropertyException("DomainArgs", "domainName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy