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

com.pulumi.azurenative.storage.inputs.AccountImmutabilityPolicyPropertiesArgs Maven / Gradle / Ivy

There is a newer version: 2.89.2
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.inputs;

import com.pulumi.azurenative.storage.enums.AccountImmutabilityPolicyState;
import com.pulumi.core.Either;
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;


/**
 * This defines account-level immutability policy properties.
 * 
 */
public final class AccountImmutabilityPolicyPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final AccountImmutabilityPolicyPropertiesArgs Empty = new AccountImmutabilityPolicyPropertiesArgs();

    /**
     * This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted.
     * 
     */
    @Import(name="allowProtectedAppendWrites")
    private @Nullable Output allowProtectedAppendWrites;

    /**
     * @return This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted.
     * 
     */
    public Optional> allowProtectedAppendWrites() {
        return Optional.ofNullable(this.allowProtectedAppendWrites);
    }

    /**
     * The immutability period for the blobs in the container since the policy creation, in days.
     * 
     */
    @Import(name="immutabilityPeriodSinceCreationInDays")
    private @Nullable Output immutabilityPeriodSinceCreationInDays;

    /**
     * @return The immutability period for the blobs in the container since the policy creation, in days.
     * 
     */
    public Optional> immutabilityPeriodSinceCreationInDays() {
        return Optional.ofNullable(this.immutabilityPeriodSinceCreationInDays);
    }

    /**
     * The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
     * 
     */
    @Import(name="state")
    private @Nullable Output> state;

    /**
     * @return The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
     * 
     */
    public Optional>> state() {
        return Optional.ofNullable(this.state);
    }

    private AccountImmutabilityPolicyPropertiesArgs() {}

    private AccountImmutabilityPolicyPropertiesArgs(AccountImmutabilityPolicyPropertiesArgs $) {
        this.allowProtectedAppendWrites = $.allowProtectedAppendWrites;
        this.immutabilityPeriodSinceCreationInDays = $.immutabilityPeriodSinceCreationInDays;
        this.state = $.state;
    }

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

    public static final class Builder {
        private AccountImmutabilityPolicyPropertiesArgs $;

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

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

        /**
         * @param allowProtectedAppendWrites This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted.
         * 
         * @return builder
         * 
         */
        public Builder allowProtectedAppendWrites(@Nullable Output allowProtectedAppendWrites) {
            $.allowProtectedAppendWrites = allowProtectedAppendWrites;
            return this;
        }

        /**
         * @param allowProtectedAppendWrites This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted.
         * 
         * @return builder
         * 
         */
        public Builder allowProtectedAppendWrites(Boolean allowProtectedAppendWrites) {
            return allowProtectedAppendWrites(Output.of(allowProtectedAppendWrites));
        }

        /**
         * @param immutabilityPeriodSinceCreationInDays The immutability period for the blobs in the container since the policy creation, in days.
         * 
         * @return builder
         * 
         */
        public Builder immutabilityPeriodSinceCreationInDays(@Nullable Output immutabilityPeriodSinceCreationInDays) {
            $.immutabilityPeriodSinceCreationInDays = immutabilityPeriodSinceCreationInDays;
            return this;
        }

        /**
         * @param immutabilityPeriodSinceCreationInDays The immutability period for the blobs in the container since the policy creation, in days.
         * 
         * @return builder
         * 
         */
        public Builder immutabilityPeriodSinceCreationInDays(Integer immutabilityPeriodSinceCreationInDays) {
            return immutabilityPeriodSinceCreationInDays(Output.of(immutabilityPeriodSinceCreationInDays));
        }

        /**
         * @param state The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
         * 
         * @return builder
         * 
         */
        public Builder state(@Nullable Output> state) {
            $.state = state;
            return this;
        }

        /**
         * @param state The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
         * 
         * @return builder
         * 
         */
        public Builder state(Either state) {
            return state(Output.of(state));
        }

        /**
         * @param state The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
         * 
         * @return builder
         * 
         */
        public Builder state(String state) {
            return state(Either.ofLeft(state));
        }

        /**
         * @param state The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.
         * 
         * @return builder
         * 
         */
        public Builder state(AccountImmutabilityPolicyState state) {
            return state(Either.ofRight(state));
        }

        public AccountImmutabilityPolicyPropertiesArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy