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

com.pulumi.azure.dataprotection.inputs.BackupPolicyMysqlFlexibleServerRetentionRuleArgs 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.BackupPolicyMysqlFlexibleServerRetentionRuleCriteriaArgs;
import com.pulumi.azure.dataprotection.inputs.BackupPolicyMysqlFlexibleServerRetentionRuleLifeCycleArgs;
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.List;
import java.util.Objects;


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

    public static final BackupPolicyMysqlFlexibleServerRetentionRuleArgs Empty = new BackupPolicyMysqlFlexibleServerRetentionRuleArgs();

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

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

    /**
     * A `life_cycle` block as defined below. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="lifeCycles", required=true)
    private Output> lifeCycles;

    /**
     * @return A `life_cycle` block as defined below. Changing this forces a new resource to be created.
     * 
     */
    public Output> lifeCycles() {
        return this.lifeCycles;
    }

    /**
     * Specifies the name of the retention rule. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Specifies the name of the retention rule. Changing this forces a new resource 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 resource 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 resource to be created.
     * 
     */
    public Output priority() {
        return this.priority;
    }

    private BackupPolicyMysqlFlexibleServerRetentionRuleArgs() {}

    private BackupPolicyMysqlFlexibleServerRetentionRuleArgs(BackupPolicyMysqlFlexibleServerRetentionRuleArgs $) {
        this.criteria = $.criteria;
        this.lifeCycles = $.lifeCycles;
        this.name = $.name;
        this.priority = $.priority;
    }

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

    public static final class Builder {
        private BackupPolicyMysqlFlexibleServerRetentionRuleArgs $;

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

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

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

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

        /**
         * @param lifeCycles A `life_cycle` block as defined below. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder lifeCycles(List lifeCycles) {
            return lifeCycles(Output.of(lifeCycles));
        }

        /**
         * @param lifeCycles A `life_cycle` block as defined below. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder lifeCycles(BackupPolicyMysqlFlexibleServerRetentionRuleLifeCycleArgs... lifeCycles) {
            return lifeCycles(List.of(lifeCycles));
        }

        /**
         * @param name Specifies the name of the retention rule. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the retention rule. Changing this forces a new resource 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 resource 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 resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy