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

com.pulumi.aws.route53.inputs.ResolverRuleState 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.aws.route53.inputs;

import com.pulumi.aws.route53.inputs.ResolverRuleTargetIpArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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 ResolverRuleState extends com.pulumi.resources.ResourceArgs {

    public static final ResolverRuleState Empty = new ResolverRuleState();

    /**
     * ARN (Amazon Resource Name) for the resolver rule.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return ARN (Amazon Resource Name) for the resolver rule.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * DNS queries for this domain name are forwarded to the IP addresses that are specified using `target_ip`.
     * 
     */
    @Import(name="domainName")
    private @Nullable Output domainName;

    /**
     * @return DNS queries for this domain name are forwarded to the IP addresses that are specified using `target_ip`.
     * 
     */
    public Optional> domainName() {
        return Optional.ofNullable(this.domainName);
    }

    /**
     * Friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.
     * 
     */
    @Import(name="ownerId")
    private @Nullable Output ownerId;

    /**
     * @return When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.
     * 
     */
    public Optional> ownerId() {
        return Optional.ofNullable(this.ownerId);
    }

    /**
     * ID of the outbound resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify using `target_ip`.
     * This argument should only be specified for `FORWARD` type rules.
     * 
     */
    @Import(name="resolverEndpointId")
    private @Nullable Output resolverEndpointId;

    /**
     * @return ID of the outbound resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify using `target_ip`.
     * This argument should only be specified for `FORWARD` type rules.
     * 
     */
    public Optional> resolverEndpointId() {
        return Optional.ofNullable(this.resolverEndpointId);
    }

    /**
     * Rule type. Valid values are `FORWARD`, `SYSTEM` and `RECURSIVE`.
     * 
     */
    @Import(name="ruleType")
    private @Nullable Output ruleType;

    /**
     * @return Rule type. Valid values are `FORWARD`, `SYSTEM` and `RECURSIVE`.
     * 
     */
    public Optional> ruleType() {
        return Optional.ofNullable(this.ruleType);
    }

    /**
     * Whether the rules is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.
     * Values are `NOT_SHARED`, `SHARED_BY_ME` or `SHARED_WITH_ME`
     * 
     */
    @Import(name="shareStatus")
    private @Nullable Output shareStatus;

    /**
     * @return Whether the rules is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.
     * Values are `NOT_SHARED`, `SHARED_BY_ME` or `SHARED_WITH_ME`
     * 
     */
    public Optional> shareStatus() {
        return Optional.ofNullable(this.shareStatus);
    }

    /**
     * Map of tags to assign to the resource. 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 Map of tags to assign to the resource. 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);
    }

    /**
     * Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    @Import(name="tagsAll")
    private @Nullable Output> tagsAll;

    /**
     * @return Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
     * 
     * @deprecated
     * Please use `tags` instead.
     * 
     */
    @Deprecated /* Please use `tags` instead. */
    public Optional>> tagsAll() {
        return Optional.ofNullable(this.tagsAll);
    }

    /**
     * Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below).
     * This argument should only be specified for `FORWARD` type rules.
     * 
     */
    @Import(name="targetIps")
    private @Nullable Output> targetIps;

    /**
     * @return Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below).
     * This argument should only be specified for `FORWARD` type rules.
     * 
     */
    public Optional>> targetIps() {
        return Optional.ofNullable(this.targetIps);
    }

    private ResolverRuleState() {}

    private ResolverRuleState(ResolverRuleState $) {
        this.arn = $.arn;
        this.domainName = $.domainName;
        this.name = $.name;
        this.ownerId = $.ownerId;
        this.resolverEndpointId = $.resolverEndpointId;
        this.ruleType = $.ruleType;
        this.shareStatus = $.shareStatus;
        this.tags = $.tags;
        this.tagsAll = $.tagsAll;
        this.targetIps = $.targetIps;
    }

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

    public static final class Builder {
        private ResolverRuleState $;

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

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

        /**
         * @param arn ARN (Amazon Resource Name) for the resolver rule.
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn ARN (Amazon Resource Name) for the resolver rule.
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param domainName DNS queries for this domain name are forwarded to the IP addresses that are specified using `target_ip`.
         * 
         * @return builder
         * 
         */
        public Builder domainName(@Nullable Output domainName) {
            $.domainName = domainName;
            return this;
        }

        /**
         * @param domainName DNS queries for this domain name are forwarded to the IP addresses that are specified using `target_ip`.
         * 
         * @return builder
         * 
         */
        public Builder domainName(String domainName) {
            return domainName(Output.of(domainName));
        }

        /**
         * @param name Friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Friendly name that lets you easily find a rule in the Resolver dashboard in the Route 53 console.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param ownerId When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.
         * 
         * @return builder
         * 
         */
        public Builder ownerId(@Nullable Output ownerId) {
            $.ownerId = ownerId;
            return this;
        }

        /**
         * @param ownerId When a rule is shared with another AWS account, the account ID of the account that the rule is shared with.
         * 
         * @return builder
         * 
         */
        public Builder ownerId(String ownerId) {
            return ownerId(Output.of(ownerId));
        }

        /**
         * @param resolverEndpointId ID of the outbound resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify using `target_ip`.
         * This argument should only be specified for `FORWARD` type rules.
         * 
         * @return builder
         * 
         */
        public Builder resolverEndpointId(@Nullable Output resolverEndpointId) {
            $.resolverEndpointId = resolverEndpointId;
            return this;
        }

        /**
         * @param resolverEndpointId ID of the outbound resolver endpoint that you want to use to route DNS queries to the IP addresses that you specify using `target_ip`.
         * This argument should only be specified for `FORWARD` type rules.
         * 
         * @return builder
         * 
         */
        public Builder resolverEndpointId(String resolverEndpointId) {
            return resolverEndpointId(Output.of(resolverEndpointId));
        }

        /**
         * @param ruleType Rule type. Valid values are `FORWARD`, `SYSTEM` and `RECURSIVE`.
         * 
         * @return builder
         * 
         */
        public Builder ruleType(@Nullable Output ruleType) {
            $.ruleType = ruleType;
            return this;
        }

        /**
         * @param ruleType Rule type. Valid values are `FORWARD`, `SYSTEM` and `RECURSIVE`.
         * 
         * @return builder
         * 
         */
        public Builder ruleType(String ruleType) {
            return ruleType(Output.of(ruleType));
        }

        /**
         * @param shareStatus Whether the rules is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.
         * Values are `NOT_SHARED`, `SHARED_BY_ME` or `SHARED_WITH_ME`
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(@Nullable Output shareStatus) {
            $.shareStatus = shareStatus;
            return this;
        }

        /**
         * @param shareStatus Whether the rules is shared and, if so, whether the current account is sharing the rule with another account, or another account is sharing the rule with the current account.
         * Values are `NOT_SHARED`, `SHARED_BY_ME` or `SHARED_WITH_ME`
         * 
         * @return builder
         * 
         */
        public Builder shareStatus(String shareStatus) {
            return shareStatus(Output.of(shareStatus));
        }

        /**
         * @param tags Map of tags to assign to the resource. 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 Map of tags to assign to the resource. 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));
        }

        /**
         * @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(@Nullable Output> tagsAll) {
            $.tagsAll = tagsAll;
            return this;
        }

        /**
         * @param tagsAll Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
         * 
         * @return builder
         * 
         * @deprecated
         * Please use `tags` instead.
         * 
         */
        @Deprecated /* Please use `tags` instead. */
        public Builder tagsAll(Map tagsAll) {
            return tagsAll(Output.of(tagsAll));
        }

        /**
         * @param targetIps Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below).
         * This argument should only be specified for `FORWARD` type rules.
         * 
         * @return builder
         * 
         */
        public Builder targetIps(@Nullable Output> targetIps) {
            $.targetIps = targetIps;
            return this;
        }

        /**
         * @param targetIps Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below).
         * This argument should only be specified for `FORWARD` type rules.
         * 
         * @return builder
         * 
         */
        public Builder targetIps(List targetIps) {
            return targetIps(Output.of(targetIps));
        }

        /**
         * @param targetIps Configuration block(s) indicating the IPs that you want Resolver to forward DNS queries to (documented below).
         * This argument should only be specified for `FORWARD` type rules.
         * 
         * @return builder
         * 
         */
        public Builder targetIps(ResolverRuleTargetIpArgs... targetIps) {
            return targetIps(List.of(targetIps));
        }

        public ResolverRuleState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy