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

com.pulumi.azurenative.sql.DistributedAvailabilityGroupArgs 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.azurenative.sql;

import com.pulumi.azurenative.sql.enums.ReplicationMode;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DistributedAvailabilityGroupArgs Empty = new DistributedAvailabilityGroupArgs();

    /**
     * The distributed availability group name.
     * 
     */
    @Import(name="distributedAvailabilityGroupName")
    private @Nullable Output distributedAvailabilityGroupName;

    /**
     * @return The distributed availability group name.
     * 
     */
    public Optional> distributedAvailabilityGroupName() {
        return Optional.ofNullable(this.distributedAvailabilityGroupName);
    }

    /**
     * The name of the managed instance.
     * 
     */
    @Import(name="managedInstanceName", required=true)
    private Output managedInstanceName;

    /**
     * @return The name of the managed instance.
     * 
     */
    public Output managedInstanceName() {
        return this.managedInstanceName;
    }

    /**
     * The primary availability group name
     * 
     */
    @Import(name="primaryAvailabilityGroupName")
    private @Nullable Output primaryAvailabilityGroupName;

    /**
     * @return The primary availability group name
     * 
     */
    public Optional> primaryAvailabilityGroupName() {
        return Optional.ofNullable(this.primaryAvailabilityGroupName);
    }

    /**
     * The replication mode of a distributed availability group. Parameter will be ignored during link creation.
     * 
     */
    @Import(name="replicationMode")
    private @Nullable Output> replicationMode;

    /**
     * @return The replication mode of a distributed availability group. Parameter will be ignored during link creation.
     * 
     */
    public Optional>> replicationMode() {
        return Optional.ofNullable(this.replicationMode);
    }

    /**
     * The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The secondary availability group name
     * 
     */
    @Import(name="secondaryAvailabilityGroupName")
    private @Nullable Output secondaryAvailabilityGroupName;

    /**
     * @return The secondary availability group name
     * 
     */
    public Optional> secondaryAvailabilityGroupName() {
        return Optional.ofNullable(this.secondaryAvailabilityGroupName);
    }

    /**
     * The source endpoint
     * 
     */
    @Import(name="sourceEndpoint")
    private @Nullable Output sourceEndpoint;

    /**
     * @return The source endpoint
     * 
     */
    public Optional> sourceEndpoint() {
        return Optional.ofNullable(this.sourceEndpoint);
    }

    /**
     * The name of the target database
     * 
     */
    @Import(name="targetDatabase")
    private @Nullable Output targetDatabase;

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

    private DistributedAvailabilityGroupArgs() {}

    private DistributedAvailabilityGroupArgs(DistributedAvailabilityGroupArgs $) {
        this.distributedAvailabilityGroupName = $.distributedAvailabilityGroupName;
        this.managedInstanceName = $.managedInstanceName;
        this.primaryAvailabilityGroupName = $.primaryAvailabilityGroupName;
        this.replicationMode = $.replicationMode;
        this.resourceGroupName = $.resourceGroupName;
        this.secondaryAvailabilityGroupName = $.secondaryAvailabilityGroupName;
        this.sourceEndpoint = $.sourceEndpoint;
        this.targetDatabase = $.targetDatabase;
    }

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

    public static final class Builder {
        private DistributedAvailabilityGroupArgs $;

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

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

        /**
         * @param distributedAvailabilityGroupName The distributed availability group name.
         * 
         * @return builder
         * 
         */
        public Builder distributedAvailabilityGroupName(@Nullable Output distributedAvailabilityGroupName) {
            $.distributedAvailabilityGroupName = distributedAvailabilityGroupName;
            return this;
        }

        /**
         * @param distributedAvailabilityGroupName The distributed availability group name.
         * 
         * @return builder
         * 
         */
        public Builder distributedAvailabilityGroupName(String distributedAvailabilityGroupName) {
            return distributedAvailabilityGroupName(Output.of(distributedAvailabilityGroupName));
        }

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

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

        /**
         * @param primaryAvailabilityGroupName The primary availability group name
         * 
         * @return builder
         * 
         */
        public Builder primaryAvailabilityGroupName(@Nullable Output primaryAvailabilityGroupName) {
            $.primaryAvailabilityGroupName = primaryAvailabilityGroupName;
            return this;
        }

        /**
         * @param primaryAvailabilityGroupName The primary availability group name
         * 
         * @return builder
         * 
         */
        public Builder primaryAvailabilityGroupName(String primaryAvailabilityGroupName) {
            return primaryAvailabilityGroupName(Output.of(primaryAvailabilityGroupName));
        }

        /**
         * @param replicationMode The replication mode of a distributed availability group. Parameter will be ignored during link creation.
         * 
         * @return builder
         * 
         */
        public Builder replicationMode(@Nullable Output> replicationMode) {
            $.replicationMode = replicationMode;
            return this;
        }

        /**
         * @param replicationMode The replication mode of a distributed availability group. Parameter will be ignored during link creation.
         * 
         * @return builder
         * 
         */
        public Builder replicationMode(Either replicationMode) {
            return replicationMode(Output.of(replicationMode));
        }

        /**
         * @param replicationMode The replication mode of a distributed availability group. Parameter will be ignored during link creation.
         * 
         * @return builder
         * 
         */
        public Builder replicationMode(String replicationMode) {
            return replicationMode(Either.ofLeft(replicationMode));
        }

        /**
         * @param replicationMode The replication mode of a distributed availability group. Parameter will be ignored during link creation.
         * 
         * @return builder
         * 
         */
        public Builder replicationMode(ReplicationMode replicationMode) {
            return replicationMode(Either.ofRight(replicationMode));
        }

        /**
         * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param secondaryAvailabilityGroupName The secondary availability group name
         * 
         * @return builder
         * 
         */
        public Builder secondaryAvailabilityGroupName(@Nullable Output secondaryAvailabilityGroupName) {
            $.secondaryAvailabilityGroupName = secondaryAvailabilityGroupName;
            return this;
        }

        /**
         * @param secondaryAvailabilityGroupName The secondary availability group name
         * 
         * @return builder
         * 
         */
        public Builder secondaryAvailabilityGroupName(String secondaryAvailabilityGroupName) {
            return secondaryAvailabilityGroupName(Output.of(secondaryAvailabilityGroupName));
        }

        /**
         * @param sourceEndpoint The source endpoint
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpoint(@Nullable Output sourceEndpoint) {
            $.sourceEndpoint = sourceEndpoint;
            return this;
        }

        /**
         * @param sourceEndpoint The source endpoint
         * 
         * @return builder
         * 
         */
        public Builder sourceEndpoint(String sourceEndpoint) {
            return sourceEndpoint(Output.of(sourceEndpoint));
        }

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

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

        public DistributedAvailabilityGroupArgs build() {
            if ($.managedInstanceName == null) {
                throw new MissingRequiredPropertyException("DistributedAvailabilityGroupArgs", "managedInstanceName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("DistributedAvailabilityGroupArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy