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

com.pulumi.azure.backup.inputs.PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs 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.backup.inputs;

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;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs Empty = new PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs();

    /**
     * The number of yearly backups to keep. Possible values are between `1` and `99`
     * 
     */
    @Import(name="count", required=true)
    private Output count;

    /**
     * @return The number of yearly backups to keep. Possible values are between `1` and `99`
     * 
     */
    public Output count() {
        return this.count;
    }

    /**
     * The retention schedule format type for yearly retention policy. Possible values are `Daily` and `Weekly`.
     * 
     */
    @Import(name="formatType", required=true)
    private Output formatType;

    /**
     * @return The retention schedule format type for yearly retention policy. Possible values are `Daily` and `Weekly`.
     * 
     */
    public Output formatType() {
        return this.formatType;
    }

    /**
     * The monthday backups to retain. Possible values are between `0` and `28`.
     * 
     */
    @Import(name="monthdays")
    private @Nullable Output> monthdays;

    /**
     * @return The monthday backups to retain. Possible values are between `0` and `28`.
     * 
     */
    public Optional>> monthdays() {
        return Optional.ofNullable(this.monthdays);
    }

    /**
     * The months of the year to retain backups of. Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.
     * 
     */
    @Import(name="months", required=true)
    private Output> months;

    /**
     * @return The months of the year to retain backups of. Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.
     * 
     */
    public Output> months() {
        return this.months;
    }

    /**
     * The weekday backups to retain. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.
     * 
     */
    @Import(name="weekdays")
    private @Nullable Output> weekdays;

    /**
     * @return The weekday backups to retain. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.
     * 
     */
    public Optional>> weekdays() {
        return Optional.ofNullable(this.weekdays);
    }

    /**
     * The weeks of the month to retain backups of. Possible values are `First`, `Second`, `Third`, `Fourth`, `Last`.
     * 
     */
    @Import(name="weeks")
    private @Nullable Output> weeks;

    /**
     * @return The weeks of the month to retain backups of. Possible values are `First`, `Second`, `Third`, `Fourth`, `Last`.
     * 
     */
    public Optional>> weeks() {
        return Optional.ofNullable(this.weeks);
    }

    private PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs() {}

    private PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs(PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs $) {
        this.count = $.count;
        this.formatType = $.formatType;
        this.monthdays = $.monthdays;
        this.months = $.months;
        this.weekdays = $.weekdays;
        this.weeks = $.weeks;
    }

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

    public static final class Builder {
        private PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs $;

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

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

        /**
         * @param count The number of yearly backups to keep. Possible values are between `1` and `99`
         * 
         * @return builder
         * 
         */
        public Builder count(Output count) {
            $.count = count;
            return this;
        }

        /**
         * @param count The number of yearly backups to keep. Possible values are between `1` and `99`
         * 
         * @return builder
         * 
         */
        public Builder count(Integer count) {
            return count(Output.of(count));
        }

        /**
         * @param formatType The retention schedule format type for yearly retention policy. Possible values are `Daily` and `Weekly`.
         * 
         * @return builder
         * 
         */
        public Builder formatType(Output formatType) {
            $.formatType = formatType;
            return this;
        }

        /**
         * @param formatType The retention schedule format type for yearly retention policy. Possible values are `Daily` and `Weekly`.
         * 
         * @return builder
         * 
         */
        public Builder formatType(String formatType) {
            return formatType(Output.of(formatType));
        }

        /**
         * @param monthdays The monthday backups to retain. Possible values are between `0` and `28`.
         * 
         * @return builder
         * 
         */
        public Builder monthdays(@Nullable Output> monthdays) {
            $.monthdays = monthdays;
            return this;
        }

        /**
         * @param monthdays The monthday backups to retain. Possible values are between `0` and `28`.
         * 
         * @return builder
         * 
         */
        public Builder monthdays(List monthdays) {
            return monthdays(Output.of(monthdays));
        }

        /**
         * @param monthdays The monthday backups to retain. Possible values are between `0` and `28`.
         * 
         * @return builder
         * 
         */
        public Builder monthdays(Integer... monthdays) {
            return monthdays(List.of(monthdays));
        }

        /**
         * @param months The months of the year to retain backups of. Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.
         * 
         * @return builder
         * 
         */
        public Builder months(Output> months) {
            $.months = months;
            return this;
        }

        /**
         * @param months The months of the year to retain backups of. Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.
         * 
         * @return builder
         * 
         */
        public Builder months(List months) {
            return months(Output.of(months));
        }

        /**
         * @param months The months of the year to retain backups of. Possible values are `January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November` and `December`.
         * 
         * @return builder
         * 
         */
        public Builder months(String... months) {
            return months(List.of(months));
        }

        /**
         * @param weekdays The weekday backups to retain. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.
         * 
         * @return builder
         * 
         */
        public Builder weekdays(@Nullable Output> weekdays) {
            $.weekdays = weekdays;
            return this;
        }

        /**
         * @param weekdays The weekday backups to retain. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.
         * 
         * @return builder
         * 
         */
        public Builder weekdays(List weekdays) {
            return weekdays(Output.of(weekdays));
        }

        /**
         * @param weekdays The weekday backups to retain. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` or `Saturday`.
         * 
         * @return builder
         * 
         */
        public Builder weekdays(String... weekdays) {
            return weekdays(List.of(weekdays));
        }

        /**
         * @param weeks The weeks of the month to retain backups of. Possible values are `First`, `Second`, `Third`, `Fourth`, `Last`.
         * 
         * @return builder
         * 
         */
        public Builder weeks(@Nullable Output> weeks) {
            $.weeks = weeks;
            return this;
        }

        /**
         * @param weeks The weeks of the month to retain backups of. Possible values are `First`, `Second`, `Third`, `Fourth`, `Last`.
         * 
         * @return builder
         * 
         */
        public Builder weeks(List weeks) {
            return weeks(Output.of(weeks));
        }

        /**
         * @param weeks The weeks of the month to retain backups of. Possible values are `First`, `Second`, `Third`, `Fourth`, `Last`.
         * 
         * @return builder
         * 
         */
        public Builder weeks(String... weeks) {
            return weeks(List.of(weeks));
        }

        public PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs build() {
            if ($.count == null) {
                throw new MissingRequiredPropertyException("PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs", "count");
            }
            if ($.formatType == null) {
                throw new MissingRequiredPropertyException("PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs", "formatType");
            }
            if ($.months == null) {
                throw new MissingRequiredPropertyException("PolicyVMWorkloadProtectionPolicyRetentionYearlyArgs", "months");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy