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

com.pulumi.azure.dataprotection.inputs.BackupPolicyBlobStorageRetentionRuleArgs 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.dataprotection.inputs;

import com.pulumi.azure.dataprotection.inputs.BackupPolicyBlobStorageRetentionRuleCriteriaArgs;
import com.pulumi.azure.dataprotection.inputs.BackupPolicyBlobStorageRetentionRuleLifeCycleArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;


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

    public static final BackupPolicyBlobStorageRetentionRuleArgs Empty = new BackupPolicyBlobStorageRetentionRuleArgs();

    /**
     * A `criteria` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    @Import(name="criteria", required=true)
    private Output criteria;

    /**
     * @return A `criteria` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    public Output criteria() {
        return this.criteria;
    }

    /**
     * A `life_cycle` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    @Import(name="lifeCycle", required=true)
    private Output lifeCycle;

    /**
     * @return A `life_cycle` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    public Output lifeCycle() {
        return this.lifeCycle;
    }

    /**
     * The name which should be used for this retention rule. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The name which should be used for this retention rule. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Specifies the priority of the rule. The priority number must be unique for each rule. The lower the priority number, the higher the priority of the rule. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    @Import(name="priority", required=true)
    private Output priority;

    /**
     * @return Specifies the priority of the rule. The priority number must be unique for each rule. The lower the priority number, the higher the priority of the rule. Changing this forces a new Backup Policy Blob Storage to be created.
     * 
     */
    public Output priority() {
        return this.priority;
    }

    private BackupPolicyBlobStorageRetentionRuleArgs() {}

    private BackupPolicyBlobStorageRetentionRuleArgs(BackupPolicyBlobStorageRetentionRuleArgs $) {
        this.criteria = $.criteria;
        this.lifeCycle = $.lifeCycle;
        this.name = $.name;
        this.priority = $.priority;
    }

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

    public static final class Builder {
        private BackupPolicyBlobStorageRetentionRuleArgs $;

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

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

        /**
         * @param criteria A `criteria` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder criteria(Output criteria) {
            $.criteria = criteria;
            return this;
        }

        /**
         * @param criteria A `criteria` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder criteria(BackupPolicyBlobStorageRetentionRuleCriteriaArgs criteria) {
            return criteria(Output.of(criteria));
        }

        /**
         * @param lifeCycle A `life_cycle` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder lifeCycle(Output lifeCycle) {
            $.lifeCycle = lifeCycle;
            return this;
        }

        /**
         * @param lifeCycle A `life_cycle` block as defined below. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder lifeCycle(BackupPolicyBlobStorageRetentionRuleLifeCycleArgs lifeCycle) {
            return lifeCycle(Output.of(lifeCycle));
        }

        /**
         * @param name The name which should be used for this retention rule. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name which should be used for this retention rule. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param priority Specifies the priority of the rule. The priority number must be unique for each rule. The lower the priority number, the higher the priority of the rule. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder priority(Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority Specifies the priority of the rule. The priority number must be unique for each rule. The lower the priority number, the higher the priority of the rule. Changing this forces a new Backup Policy Blob Storage to be created.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

        public BackupPolicyBlobStorageRetentionRuleArgs build() {
            if ($.criteria == null) {
                throw new MissingRequiredPropertyException("BackupPolicyBlobStorageRetentionRuleArgs", "criteria");
            }
            if ($.lifeCycle == null) {
                throw new MissingRequiredPropertyException("BackupPolicyBlobStorageRetentionRuleArgs", "lifeCycle");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("BackupPolicyBlobStorageRetentionRuleArgs", "name");
            }
            if ($.priority == null) {
                throw new MissingRequiredPropertyException("BackupPolicyBlobStorageRetentionRuleArgs", "priority");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy