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

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

There is a newer version: 2.82.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.ChangeFeedArgs;
import com.pulumi.azurenative.storage.inputs.CorsRulesArgs;
import com.pulumi.azurenative.storage.inputs.DeleteRetentionPolicyArgs;
import com.pulumi.azurenative.storage.inputs.LastAccessTimeTrackingPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RestorePolicyPropertiesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final BlobServicePropertiesArgs Empty = new BlobServicePropertiesArgs();

    /**
     * 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;
    }

    /**
     * Deprecated in favor of isVersioningEnabled property.
     * 
     */
    @Import(name="automaticSnapshotPolicyEnabled")
    private @Nullable Output automaticSnapshotPolicyEnabled;

    /**
     * @return Deprecated in favor of isVersioningEnabled property.
     * 
     */
    public Optional> automaticSnapshotPolicyEnabled() {
        return Optional.ofNullable(this.automaticSnapshotPolicyEnabled);
    }

    /**
     * The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
     * 
     */
    @Import(name="blobServicesName")
    private @Nullable Output blobServicesName;

    /**
     * @return The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
     * 
     */
    public Optional> blobServicesName() {
        return Optional.ofNullable(this.blobServicesName);
    }

    /**
     * The blob service properties for change feed events.
     * 
     */
    @Import(name="changeFeed")
    private @Nullable Output changeFeed;

    /**
     * @return The blob service properties for change feed events.
     * 
     */
    public Optional> changeFeed() {
        return Optional.ofNullable(this.changeFeed);
    }

    /**
     * The blob service properties for container soft delete.
     * 
     */
    @Import(name="containerDeleteRetentionPolicy")
    private @Nullable Output containerDeleteRetentionPolicy;

    /**
     * @return The blob service properties for container soft delete.
     * 
     */
    public Optional> containerDeleteRetentionPolicy() {
        return Optional.ofNullable(this.containerDeleteRetentionPolicy);
    }

    /**
     * Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service.
     * 
     */
    @Import(name="cors")
    private @Nullable Output cors;

    /**
     * @return Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service.
     * 
     */
    public Optional> cors() {
        return Optional.ofNullable(this.cors);
    }

    /**
     * DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
     * 
     */
    @Import(name="defaultServiceVersion")
    private @Nullable Output defaultServiceVersion;

    /**
     * @return DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
     * 
     */
    public Optional> defaultServiceVersion() {
        return Optional.ofNullable(this.defaultServiceVersion);
    }

    /**
     * The blob service properties for blob soft delete.
     * 
     */
    @Import(name="deleteRetentionPolicy")
    private @Nullable Output deleteRetentionPolicy;

    /**
     * @return The blob service properties for blob soft delete.
     * 
     */
    public Optional> deleteRetentionPolicy() {
        return Optional.ofNullable(this.deleteRetentionPolicy);
    }

    /**
     * Versioning is enabled if set to true.
     * 
     */
    @Import(name="isVersioningEnabled")
    private @Nullable Output isVersioningEnabled;

    /**
     * @return Versioning is enabled if set to true.
     * 
     */
    public Optional> isVersioningEnabled() {
        return Optional.ofNullable(this.isVersioningEnabled);
    }

    /**
     * The blob service property to configure last access time based tracking policy.
     * 
     */
    @Import(name="lastAccessTimeTrackingPolicy")
    private @Nullable Output lastAccessTimeTrackingPolicy;

    /**
     * @return The blob service property to configure last access time based tracking policy.
     * 
     */
    public Optional> lastAccessTimeTrackingPolicy() {
        return Optional.ofNullable(this.lastAccessTimeTrackingPolicy);
    }

    /**
     * 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 blob service properties for blob restore policy.
     * 
     */
    @Import(name="restorePolicy")
    private @Nullable Output restorePolicy;

    /**
     * @return The blob service properties for blob restore policy.
     * 
     */
    public Optional> restorePolicy() {
        return Optional.ofNullable(this.restorePolicy);
    }

    private BlobServicePropertiesArgs() {}

    private BlobServicePropertiesArgs(BlobServicePropertiesArgs $) {
        this.accountName = $.accountName;
        this.automaticSnapshotPolicyEnabled = $.automaticSnapshotPolicyEnabled;
        this.blobServicesName = $.blobServicesName;
        this.changeFeed = $.changeFeed;
        this.containerDeleteRetentionPolicy = $.containerDeleteRetentionPolicy;
        this.cors = $.cors;
        this.defaultServiceVersion = $.defaultServiceVersion;
        this.deleteRetentionPolicy = $.deleteRetentionPolicy;
        this.isVersioningEnabled = $.isVersioningEnabled;
        this.lastAccessTimeTrackingPolicy = $.lastAccessTimeTrackingPolicy;
        this.resourceGroupName = $.resourceGroupName;
        this.restorePolicy = $.restorePolicy;
    }

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

    public static final class Builder {
        private BlobServicePropertiesArgs $;

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

        public Builder(BlobServicePropertiesArgs defaults) {
            $ = new BlobServicePropertiesArgs(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 automaticSnapshotPolicyEnabled Deprecated in favor of isVersioningEnabled property.
         * 
         * @return builder
         * 
         */
        public Builder automaticSnapshotPolicyEnabled(@Nullable Output automaticSnapshotPolicyEnabled) {
            $.automaticSnapshotPolicyEnabled = automaticSnapshotPolicyEnabled;
            return this;
        }

        /**
         * @param automaticSnapshotPolicyEnabled Deprecated in favor of isVersioningEnabled property.
         * 
         * @return builder
         * 
         */
        public Builder automaticSnapshotPolicyEnabled(Boolean automaticSnapshotPolicyEnabled) {
            return automaticSnapshotPolicyEnabled(Output.of(automaticSnapshotPolicyEnabled));
        }

        /**
         * @param blobServicesName The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
         * 
         * @return builder
         * 
         */
        public Builder blobServicesName(@Nullable Output blobServicesName) {
            $.blobServicesName = blobServicesName;
            return this;
        }

        /**
         * @param blobServicesName The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
         * 
         * @return builder
         * 
         */
        public Builder blobServicesName(String blobServicesName) {
            return blobServicesName(Output.of(blobServicesName));
        }

        /**
         * @param changeFeed The blob service properties for change feed events.
         * 
         * @return builder
         * 
         */
        public Builder changeFeed(@Nullable Output changeFeed) {
            $.changeFeed = changeFeed;
            return this;
        }

        /**
         * @param changeFeed The blob service properties for change feed events.
         * 
         * @return builder
         * 
         */
        public Builder changeFeed(ChangeFeedArgs changeFeed) {
            return changeFeed(Output.of(changeFeed));
        }

        /**
         * @param containerDeleteRetentionPolicy The blob service properties for container soft delete.
         * 
         * @return builder
         * 
         */
        public Builder containerDeleteRetentionPolicy(@Nullable Output containerDeleteRetentionPolicy) {
            $.containerDeleteRetentionPolicy = containerDeleteRetentionPolicy;
            return this;
        }

        /**
         * @param containerDeleteRetentionPolicy The blob service properties for container soft delete.
         * 
         * @return builder
         * 
         */
        public Builder containerDeleteRetentionPolicy(DeleteRetentionPolicyArgs containerDeleteRetentionPolicy) {
            return containerDeleteRetentionPolicy(Output.of(containerDeleteRetentionPolicy));
        }

        /**
         * @param cors Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service.
         * 
         * @return builder
         * 
         */
        public Builder cors(@Nullable Output cors) {
            $.cors = cors;
            return this;
        }

        /**
         * @param cors Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service.
         * 
         * @return builder
         * 
         */
        public Builder cors(CorsRulesArgs cors) {
            return cors(Output.of(cors));
        }

        /**
         * @param defaultServiceVersion DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
         * 
         * @return builder
         * 
         */
        public Builder defaultServiceVersion(@Nullable Output defaultServiceVersion) {
            $.defaultServiceVersion = defaultServiceVersion;
            return this;
        }

        /**
         * @param defaultServiceVersion DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
         * 
         * @return builder
         * 
         */
        public Builder defaultServiceVersion(String defaultServiceVersion) {
            return defaultServiceVersion(Output.of(defaultServiceVersion));
        }

        /**
         * @param deleteRetentionPolicy The blob service properties for blob soft delete.
         * 
         * @return builder
         * 
         */
        public Builder deleteRetentionPolicy(@Nullable Output deleteRetentionPolicy) {
            $.deleteRetentionPolicy = deleteRetentionPolicy;
            return this;
        }

        /**
         * @param deleteRetentionPolicy The blob service properties for blob soft delete.
         * 
         * @return builder
         * 
         */
        public Builder deleteRetentionPolicy(DeleteRetentionPolicyArgs deleteRetentionPolicy) {
            return deleteRetentionPolicy(Output.of(deleteRetentionPolicy));
        }

        /**
         * @param isVersioningEnabled Versioning is enabled if set to true.
         * 
         * @return builder
         * 
         */
        public Builder isVersioningEnabled(@Nullable Output isVersioningEnabled) {
            $.isVersioningEnabled = isVersioningEnabled;
            return this;
        }

        /**
         * @param isVersioningEnabled Versioning is enabled if set to true.
         * 
         * @return builder
         * 
         */
        public Builder isVersioningEnabled(Boolean isVersioningEnabled) {
            return isVersioningEnabled(Output.of(isVersioningEnabled));
        }

        /**
         * @param lastAccessTimeTrackingPolicy The blob service property to configure last access time based tracking policy.
         * 
         * @return builder
         * 
         */
        public Builder lastAccessTimeTrackingPolicy(@Nullable Output lastAccessTimeTrackingPolicy) {
            $.lastAccessTimeTrackingPolicy = lastAccessTimeTrackingPolicy;
            return this;
        }

        /**
         * @param lastAccessTimeTrackingPolicy The blob service property to configure last access time based tracking policy.
         * 
         * @return builder
         * 
         */
        public Builder lastAccessTimeTrackingPolicy(LastAccessTimeTrackingPolicyArgs lastAccessTimeTrackingPolicy) {
            return lastAccessTimeTrackingPolicy(Output.of(lastAccessTimeTrackingPolicy));
        }

        /**
         * @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 restorePolicy The blob service properties for blob restore policy.
         * 
         * @return builder
         * 
         */
        public Builder restorePolicy(@Nullable Output restorePolicy) {
            $.restorePolicy = restorePolicy;
            return this;
        }

        /**
         * @param restorePolicy The blob service properties for blob restore policy.
         * 
         * @return builder
         * 
         */
        public Builder restorePolicy(RestorePolicyPropertiesArgs restorePolicy) {
            return restorePolicy(Output.of(restorePolicy));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy