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

com.pulumi.azure.storage.inputs.ObjectReplicationRuleArgs 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.azure.storage.inputs;

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 ObjectReplicationRuleArgs extends com.pulumi.resources.ResourceArgs {

    public static final ObjectReplicationRuleArgs Empty = new ObjectReplicationRuleArgs();

    /**
     * The time after which the Block Blobs created will be copies to the destination. Possible values are `OnlyNewObjects`, `Everything` and time in RFC3339 format: `2006-01-02T15:04:00Z`. Defaults to `OnlyNewObjects`.
     * 
     */
    @Import(name="copyBlobsCreatedAfter")
    private @Nullable Output copyBlobsCreatedAfter;

    /**
     * @return The time after which the Block Blobs created will be copies to the destination. Possible values are `OnlyNewObjects`, `Everything` and time in RFC3339 format: `2006-01-02T15:04:00Z`. Defaults to `OnlyNewObjects`.
     * 
     */
    public Optional> copyBlobsCreatedAfter() {
        return Optional.ofNullable(this.copyBlobsCreatedAfter);
    }

    /**
     * The destination storage container name.
     * 
     */
    @Import(name="destinationContainerName", required=true)
    private Output destinationContainerName;

    /**
     * @return The destination storage container name.
     * 
     */
    public Output destinationContainerName() {
        return this.destinationContainerName;
    }

    /**
     * Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.
     * 
     */
    @Import(name="filterOutBlobsWithPrefixes")
    private @Nullable Output> filterOutBlobsWithPrefixes;

    /**
     * @return Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.
     * 
     */
    public Optional>> filterOutBlobsWithPrefixes() {
        return Optional.ofNullable(this.filterOutBlobsWithPrefixes);
    }

    @Import(name="name")
    private @Nullable Output name;

    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The source storage container name.
     * 
     */
    @Import(name="sourceContainerName", required=true)
    private Output sourceContainerName;

    /**
     * @return The source storage container name.
     * 
     */
    public Output sourceContainerName() {
        return this.sourceContainerName;
    }

    private ObjectReplicationRuleArgs() {}

    private ObjectReplicationRuleArgs(ObjectReplicationRuleArgs $) {
        this.copyBlobsCreatedAfter = $.copyBlobsCreatedAfter;
        this.destinationContainerName = $.destinationContainerName;
        this.filterOutBlobsWithPrefixes = $.filterOutBlobsWithPrefixes;
        this.name = $.name;
        this.sourceContainerName = $.sourceContainerName;
    }

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

    public static final class Builder {
        private ObjectReplicationRuleArgs $;

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

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

        /**
         * @param copyBlobsCreatedAfter The time after which the Block Blobs created will be copies to the destination. Possible values are `OnlyNewObjects`, `Everything` and time in RFC3339 format: `2006-01-02T15:04:00Z`. Defaults to `OnlyNewObjects`.
         * 
         * @return builder
         * 
         */
        public Builder copyBlobsCreatedAfter(@Nullable Output copyBlobsCreatedAfter) {
            $.copyBlobsCreatedAfter = copyBlobsCreatedAfter;
            return this;
        }

        /**
         * @param copyBlobsCreatedAfter The time after which the Block Blobs created will be copies to the destination. Possible values are `OnlyNewObjects`, `Everything` and time in RFC3339 format: `2006-01-02T15:04:00Z`. Defaults to `OnlyNewObjects`.
         * 
         * @return builder
         * 
         */
        public Builder copyBlobsCreatedAfter(String copyBlobsCreatedAfter) {
            return copyBlobsCreatedAfter(Output.of(copyBlobsCreatedAfter));
        }

        /**
         * @param destinationContainerName The destination storage container name.
         * 
         * @return builder
         * 
         */
        public Builder destinationContainerName(Output destinationContainerName) {
            $.destinationContainerName = destinationContainerName;
            return this;
        }

        /**
         * @param destinationContainerName The destination storage container name.
         * 
         * @return builder
         * 
         */
        public Builder destinationContainerName(String destinationContainerName) {
            return destinationContainerName(Output.of(destinationContainerName));
        }

        /**
         * @param filterOutBlobsWithPrefixes Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.
         * 
         * @return builder
         * 
         */
        public Builder filterOutBlobsWithPrefixes(@Nullable Output> filterOutBlobsWithPrefixes) {
            $.filterOutBlobsWithPrefixes = filterOutBlobsWithPrefixes;
            return this;
        }

        /**
         * @param filterOutBlobsWithPrefixes Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.
         * 
         * @return builder
         * 
         */
        public Builder filterOutBlobsWithPrefixes(List filterOutBlobsWithPrefixes) {
            return filterOutBlobsWithPrefixes(Output.of(filterOutBlobsWithPrefixes));
        }

        /**
         * @param filterOutBlobsWithPrefixes Specifies a list of filters prefixes, the blobs whose names begin with which will be replicated.
         * 
         * @return builder
         * 
         */
        public Builder filterOutBlobsWithPrefixes(String... filterOutBlobsWithPrefixes) {
            return filterOutBlobsWithPrefixes(List.of(filterOutBlobsWithPrefixes));
        }

        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param sourceContainerName The source storage container name.
         * 
         * @return builder
         * 
         */
        public Builder sourceContainerName(Output sourceContainerName) {
            $.sourceContainerName = sourceContainerName;
            return this;
        }

        /**
         * @param sourceContainerName The source storage container name.
         * 
         * @return builder
         * 
         */
        public Builder sourceContainerName(String sourceContainerName) {
            return sourceContainerName(Output.of(sourceContainerName));
        }

        public ObjectReplicationRuleArgs build() {
            if ($.destinationContainerName == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationRuleArgs", "destinationContainerName");
            }
            if ($.sourceContainerName == null) {
                throw new MissingRequiredPropertyException("ObjectReplicationRuleArgs", "sourceContainerName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy