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

com.pulumi.azurenative.storage.ObjectReplicationPolicyArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
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.azurenative.storage;

import com.pulumi.azurenative.storage.inputs.ObjectReplicationPolicyRuleArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ObjectReplicationPolicyArgs Empty = new ObjectReplicationPolicyArgs();

    /**
     * The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
     * 
     */
    @Import(name="accountName", required=true)
    private Output accountName;

    /**
     * @return The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
     * 
     */
    public Output accountName() {
        return this.accountName;
    }

    /**
     * Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false.
     * 
     */
    @Import(name="destinationAccount", required=true)
    private Output destinationAccount;

    /**
     * @return Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false.
     * 
     */
    public Output destinationAccount() {
        return this.destinationAccount;
    }

    /**
     * For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.
     * 
     */
    @Import(name="objectReplicationPolicyId")
    private @Nullable Output objectReplicationPolicyId;

    /**
     * @return For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.
     * 
     */
    public Optional> objectReplicationPolicyId() {
        return Optional.ofNullable(this.objectReplicationPolicyId);
    }

    /**
     * The name of the resource group within the user's subscription. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group within the user's subscription. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The storage account object replication rules.
     * 
     */
    @Import(name="rules")
    private @Nullable Output> rules;

    /**
     * @return The storage account object replication rules.
     * 
     */
    public Optional>> rules() {
        return Optional.ofNullable(this.rules);
    }

    /**
     * Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false.
     * 
     */
    @Import(name="sourceAccount", required=true)
    private Output sourceAccount;

    /**
     * @return Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false.
     * 
     */
    public Output sourceAccount() {
        return this.sourceAccount;
    }

    private ObjectReplicationPolicyArgs() {}

    private ObjectReplicationPolicyArgs(ObjectReplicationPolicyArgs $) {
        this.accountName = $.accountName;
        this.destinationAccount = $.destinationAccount;
        this.objectReplicationPolicyId = $.objectReplicationPolicyId;
        this.resourceGroupName = $.resourceGroupName;
        this.rules = $.rules;
        this.sourceAccount = $.sourceAccount;
    }

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

    public static final class Builder {
        private ObjectReplicationPolicyArgs $;

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

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

        /**
         * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
         * 
         * @return builder
         * 
         */
        public Builder accountName(Output accountName) {
            $.accountName = accountName;
            return this;
        }

        /**
         * @param accountName The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
         * 
         * @return builder
         * 
         */
        public Builder accountName(String accountName) {
            return accountName(Output.of(accountName));
        }

        /**
         * @param destinationAccount Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false.
         * 
         * @return builder
         * 
         */
        public Builder destinationAccount(Output destinationAccount) {
            $.destinationAccount = destinationAccount;
            return this;
        }

        /**
         * @param destinationAccount Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false.
         * 
         * @return builder
         * 
         */
        public Builder destinationAccount(String destinationAccount) {
            return destinationAccount(Output.of(destinationAccount));
        }

        /**
         * @param objectReplicationPolicyId For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.
         * 
         * @return builder
         * 
         */
        public Builder objectReplicationPolicyId(@Nullable Output objectReplicationPolicyId) {
            $.objectReplicationPolicyId = objectReplicationPolicyId;
            return this;
        }

        /**
         * @param objectReplicationPolicyId For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.
         * 
         * @return builder
         * 
         */
        public Builder objectReplicationPolicyId(String objectReplicationPolicyId) {
            return objectReplicationPolicyId(Output.of(objectReplicationPolicyId));
        }

        /**
         * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group within the user's subscription. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param rules The storage account object replication rules.
         * 
         * @return builder
         * 
         */
        public Builder rules(@Nullable Output> rules) {
            $.rules = rules;
            return this;
        }

        /**
         * @param rules The storage account object replication rules.
         * 
         * @return builder
         * 
         */
        public Builder rules(List rules) {
            return rules(Output.of(rules));
        }

        /**
         * @param rules The storage account object replication rules.
         * 
         * @return builder
         * 
         */
        public Builder rules(ObjectReplicationPolicyRuleArgs... rules) {
            return rules(List.of(rules));
        }

        /**
         * @param sourceAccount Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false.
         * 
         * @return builder
         * 
         */
        public Builder sourceAccount(Output sourceAccount) {
            $.sourceAccount = sourceAccount;
            return this;
        }

        /**
         * @param sourceAccount Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false.
         * 
         * @return builder
         * 
         */
        public Builder sourceAccount(String sourceAccount) {
            return sourceAccount(Output.of(sourceAccount));
        }

        public ObjectReplicationPolicyArgs build() {
            if ($.accountName == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationPolicyArgs", "accountName");
            }
            if ($.destinationAccount == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationPolicyArgs", "destinationAccount");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationPolicyArgs", "resourceGroupName");
            }
            if ($.sourceAccount == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationPolicyArgs", "sourceAccount");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy