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

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

import com.pulumi.azure.dataprotection.inputs.BackupPolicyPostgresqlRetentionRuleCriteriaArgs;
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 BackupPolicyPostgresqlRetentionRuleArgs extends com.pulumi.resources.ResourceArgs {

    public static final BackupPolicyPostgresqlRetentionRuleArgs Empty = new BackupPolicyPostgresqlRetentionRuleArgs();

    /**
     * A `criteria` block as defined below. Changing this forces a new Backup Policy PostgreSQL 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 PostgreSQL to be created.
     * 
     */
    public Output criteria() {
        return this.criteria;
    }

    /**
     * Duration after which the backup is deleted. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.
     * 
     */
    @Import(name="duration", required=true)
    private Output duration;

    /**
     * @return Duration after which the backup is deleted. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.
     * 
     */
    public Output duration() {
        return this.duration;
    }

    /**
     * The name which should be used for this retention rule. Changing this forces a new Backup Policy PostgreSQL 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 PostgreSQL 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 PostgreSQL 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 PostgreSQL to be created.
     * 
     */
    public Output priority() {
        return this.priority;
    }

    private BackupPolicyPostgresqlRetentionRuleArgs() {}

    private BackupPolicyPostgresqlRetentionRuleArgs(BackupPolicyPostgresqlRetentionRuleArgs $) {
        this.criteria = $.criteria;
        this.duration = $.duration;
        this.name = $.name;
        this.priority = $.priority;
    }

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

    public static final class Builder {
        private BackupPolicyPostgresqlRetentionRuleArgs $;

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

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

        /**
         * @param criteria A `criteria` block as defined below. Changing this forces a new Backup Policy PostgreSQL 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 PostgreSQL to be created.
         * 
         * @return builder
         * 
         */
        public Builder criteria(BackupPolicyPostgresqlRetentionRuleCriteriaArgs criteria) {
            return criteria(Output.of(criteria));
        }

        /**
         * @param duration Duration after which the backup is deleted. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.
         * 
         * @return builder
         * 
         */
        public Builder duration(Output duration) {
            $.duration = duration;
            return this;
        }

        /**
         * @param duration Duration after which the backup is deleted. It should follow `ISO 8601` duration format. Changing this forces a new Backup Policy PostgreSQL to be created.
         * 
         * @return builder
         * 
         */
        public Builder duration(String duration) {
            return duration(Output.of(duration));
        }

        /**
         * @param name The name which should be used for this retention rule. Changing this forces a new Backup Policy PostgreSQL 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 PostgreSQL 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 PostgreSQL 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 PostgreSQL to be created.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy