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

com.pulumi.azure.storage.inputs.ContainerImmutabilityPolicyState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.storage.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ContainerImmutabilityPolicyState Empty = new ContainerImmutabilityPolicyState();

    /**
     * The time interval in days that the data needs to be kept in a non-erasable and non-modifiable state.
     * 
     */
    @Import(name="immutabilityPeriodInDays")
    private @Nullable Output immutabilityPeriodInDays;

    /**
     * @return The time interval in days that the data needs to be kept in a non-erasable and non-modifiable state.
     * 
     */
    public Optional> immutabilityPeriodInDays() {
        return Optional.ofNullable(this.immutabilityPeriodInDays);
    }

    /**
     * Whether to lock this immutability policy. Cannot be set to `false` once the policy has been locked.
     * 
     * !> **Locking an Immutability Policy** Once an Immutability Policy has been locked, it cannot be unlocked. After locking, it will only be possible to increase the value for `retention_period_in_days` up to 5 times for the lifetime of the policy. No other properties will be updateable. Furthermore, the Storage Container and the Storage Account in which it resides will become protected by the policy. It will no longer be possible to delete the Storage Container or the Storage Account. Please refer to [official documentation](https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-container-scope?tabs=azure-portal#lock-a-time-based-retention-policy) for more information.
     * 
     */
    @Import(name="locked")
    private @Nullable Output locked;

    /**
     * @return Whether to lock this immutability policy. Cannot be set to `false` once the policy has been locked.
     * 
     * !> **Locking an Immutability Policy** Once an Immutability Policy has been locked, it cannot be unlocked. After locking, it will only be possible to increase the value for `retention_period_in_days` up to 5 times for the lifetime of the policy. No other properties will be updateable. Furthermore, the Storage Container and the Storage Account in which it resides will become protected by the policy. It will no longer be possible to delete the Storage Container or the Storage Account. Please refer to [official documentation](https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-container-scope?tabs=azure-portal#lock-a-time-based-retention-policy) for more information.
     * 
     */
    public Optional> locked() {
        return Optional.ofNullable(this.locked);
    }

    /**
     * Whether to allow protected append writes to block and append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_enabled`.
     * 
     */
    @Import(name="protectedAppendWritesAllEnabled")
    private @Nullable Output protectedAppendWritesAllEnabled;

    /**
     * @return Whether to allow protected append writes to block and append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_enabled`.
     * 
     */
    public Optional> protectedAppendWritesAllEnabled() {
        return Optional.ofNullable(this.protectedAppendWritesAllEnabled);
    }

    /**
     * Whether to allow protected append writes to append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_all_enabled`.
     * 
     */
    @Import(name="protectedAppendWritesEnabled")
    private @Nullable Output protectedAppendWritesEnabled;

    /**
     * @return Whether to allow protected append writes to append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_all_enabled`.
     * 
     */
    public Optional> protectedAppendWritesEnabled() {
        return Optional.ofNullable(this.protectedAppendWritesEnabled);
    }

    /**
     * The Resource Manager ID of the Storage Container where this Immutability Policy should be applied. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="storageContainerResourceManagerId")
    private @Nullable Output storageContainerResourceManagerId;

    /**
     * @return The Resource Manager ID of the Storage Container where this Immutability Policy should be applied. Changing this forces a new resource to be created.
     * 
     */
    public Optional> storageContainerResourceManagerId() {
        return Optional.ofNullable(this.storageContainerResourceManagerId);
    }

    private ContainerImmutabilityPolicyState() {}

    private ContainerImmutabilityPolicyState(ContainerImmutabilityPolicyState $) {
        this.immutabilityPeriodInDays = $.immutabilityPeriodInDays;
        this.locked = $.locked;
        this.protectedAppendWritesAllEnabled = $.protectedAppendWritesAllEnabled;
        this.protectedAppendWritesEnabled = $.protectedAppendWritesEnabled;
        this.storageContainerResourceManagerId = $.storageContainerResourceManagerId;
    }

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

    public static final class Builder {
        private ContainerImmutabilityPolicyState $;

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

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

        /**
         * @param immutabilityPeriodInDays The time interval in days that the data needs to be kept in a non-erasable and non-modifiable state.
         * 
         * @return builder
         * 
         */
        public Builder immutabilityPeriodInDays(@Nullable Output immutabilityPeriodInDays) {
            $.immutabilityPeriodInDays = immutabilityPeriodInDays;
            return this;
        }

        /**
         * @param immutabilityPeriodInDays The time interval in days that the data needs to be kept in a non-erasable and non-modifiable state.
         * 
         * @return builder
         * 
         */
        public Builder immutabilityPeriodInDays(Integer immutabilityPeriodInDays) {
            return immutabilityPeriodInDays(Output.of(immutabilityPeriodInDays));
        }

        /**
         * @param locked Whether to lock this immutability policy. Cannot be set to `false` once the policy has been locked.
         * 
         * !> **Locking an Immutability Policy** Once an Immutability Policy has been locked, it cannot be unlocked. After locking, it will only be possible to increase the value for `retention_period_in_days` up to 5 times for the lifetime of the policy. No other properties will be updateable. Furthermore, the Storage Container and the Storage Account in which it resides will become protected by the policy. It will no longer be possible to delete the Storage Container or the Storage Account. Please refer to [official documentation](https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-container-scope?tabs=azure-portal#lock-a-time-based-retention-policy) for more information.
         * 
         * @return builder
         * 
         */
        public Builder locked(@Nullable Output locked) {
            $.locked = locked;
            return this;
        }

        /**
         * @param locked Whether to lock this immutability policy. Cannot be set to `false` once the policy has been locked.
         * 
         * !> **Locking an Immutability Policy** Once an Immutability Policy has been locked, it cannot be unlocked. After locking, it will only be possible to increase the value for `retention_period_in_days` up to 5 times for the lifetime of the policy. No other properties will be updateable. Furthermore, the Storage Container and the Storage Account in which it resides will become protected by the policy. It will no longer be possible to delete the Storage Container or the Storage Account. Please refer to [official documentation](https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-container-scope?tabs=azure-portal#lock-a-time-based-retention-policy) for more information.
         * 
         * @return builder
         * 
         */
        public Builder locked(Boolean locked) {
            return locked(Output.of(locked));
        }

        /**
         * @param protectedAppendWritesAllEnabled Whether to allow protected append writes to block and append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_enabled`.
         * 
         * @return builder
         * 
         */
        public Builder protectedAppendWritesAllEnabled(@Nullable Output protectedAppendWritesAllEnabled) {
            $.protectedAppendWritesAllEnabled = protectedAppendWritesAllEnabled;
            return this;
        }

        /**
         * @param protectedAppendWritesAllEnabled Whether to allow protected append writes to block and append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_enabled`.
         * 
         * @return builder
         * 
         */
        public Builder protectedAppendWritesAllEnabled(Boolean protectedAppendWritesAllEnabled) {
            return protectedAppendWritesAllEnabled(Output.of(protectedAppendWritesAllEnabled));
        }

        /**
         * @param protectedAppendWritesEnabled Whether to allow protected append writes to append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_all_enabled`.
         * 
         * @return builder
         * 
         */
        public Builder protectedAppendWritesEnabled(@Nullable Output protectedAppendWritesEnabled) {
            $.protectedAppendWritesEnabled = protectedAppendWritesEnabled;
            return this;
        }

        /**
         * @param protectedAppendWritesEnabled Whether to allow protected append writes to append blobs to the container. Defaults to `false`. Cannot be set with `protected_append_writes_all_enabled`.
         * 
         * @return builder
         * 
         */
        public Builder protectedAppendWritesEnabled(Boolean protectedAppendWritesEnabled) {
            return protectedAppendWritesEnabled(Output.of(protectedAppendWritesEnabled));
        }

        /**
         * @param storageContainerResourceManagerId The Resource Manager ID of the Storage Container where this Immutability Policy should be applied. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder storageContainerResourceManagerId(@Nullable Output storageContainerResourceManagerId) {
            $.storageContainerResourceManagerId = storageContainerResourceManagerId;
            return this;
        }

        /**
         * @param storageContainerResourceManagerId The Resource Manager ID of the Storage Container where this Immutability Policy should be applied. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder storageContainerResourceManagerId(String storageContainerResourceManagerId) {
            return storageContainerResourceManagerId(Output.of(storageContainerResourceManagerId));
        }

        public ContainerImmutabilityPolicyState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy