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

com.pulumi.azurenative.insights.AutoscaleSettingArgs 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.azurenative.insights;

import com.pulumi.azurenative.insights.inputs.AutoscaleNotificationArgs;
import com.pulumi.azurenative.insights.inputs.AutoscaleProfileArgs;
import com.pulumi.azurenative.insights.inputs.PredictiveAutoscalePolicyArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AutoscaleSettingArgs Empty = new AutoscaleSettingArgs();

    /**
     * The autoscale setting name.
     * 
     */
    @Import(name="autoscaleSettingName")
    private @Nullable Output autoscaleSettingName;

    /**
     * @return The autoscale setting name.
     * 
     */
    public Optional> autoscaleSettingName() {
        return Optional.ofNullable(this.autoscaleSettingName);
    }

    /**
     * the enabled flag. Specifies whether automatic scaling is enabled for the resource. The default value is 'false'.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return the enabled flag. Specifies whether automatic scaling is enabled for the resource. The default value is 'false'.
     * 
     */
    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * Resource location
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * the name of the autoscale setting.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return the name of the autoscale setting.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * the collection of notifications.
     * 
     */
    @Import(name="notifications")
    private @Nullable Output> notifications;

    /**
     * @return the collection of notifications.
     * 
     */
    public Optional>> notifications() {
        return Optional.ofNullable(this.notifications);
    }

    /**
     * the predictive autoscale policy mode.
     * 
     */
    @Import(name="predictiveAutoscalePolicy")
    private @Nullable Output predictiveAutoscalePolicy;

    /**
     * @return the predictive autoscale policy mode.
     * 
     */
    public Optional> predictiveAutoscalePolicy() {
        return Optional.ofNullable(this.predictiveAutoscalePolicy);
    }

    /**
     * the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.
     * 
     */
    @Import(name="profiles", required=true)
    private Output> profiles;

    /**
     * @return the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.
     * 
     */
    public Output> profiles() {
        return this.profiles;
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * the location of the resource that the autoscale setting should be added to.
     * 
     */
    @Import(name="targetResourceLocation")
    private @Nullable Output targetResourceLocation;

    /**
     * @return the location of the resource that the autoscale setting should be added to.
     * 
     */
    public Optional> targetResourceLocation() {
        return Optional.ofNullable(this.targetResourceLocation);
    }

    /**
     * the resource identifier of the resource that the autoscale setting should be added to.
     * 
     */
    @Import(name="targetResourceUri")
    private @Nullable Output targetResourceUri;

    /**
     * @return the resource identifier of the resource that the autoscale setting should be added to.
     * 
     */
    public Optional> targetResourceUri() {
        return Optional.ofNullable(this.targetResourceUri);
    }

    private AutoscaleSettingArgs() {}

    private AutoscaleSettingArgs(AutoscaleSettingArgs $) {
        this.autoscaleSettingName = $.autoscaleSettingName;
        this.enabled = $.enabled;
        this.location = $.location;
        this.name = $.name;
        this.notifications = $.notifications;
        this.predictiveAutoscalePolicy = $.predictiveAutoscalePolicy;
        this.profiles = $.profiles;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.targetResourceLocation = $.targetResourceLocation;
        this.targetResourceUri = $.targetResourceUri;
    }

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

    public static final class Builder {
        private AutoscaleSettingArgs $;

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

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

        /**
         * @param autoscaleSettingName The autoscale setting name.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleSettingName(@Nullable Output autoscaleSettingName) {
            $.autoscaleSettingName = autoscaleSettingName;
            return this;
        }

        /**
         * @param autoscaleSettingName The autoscale setting name.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleSettingName(String autoscaleSettingName) {
            return autoscaleSettingName(Output.of(autoscaleSettingName));
        }

        /**
         * @param enabled the enabled flag. Specifies whether automatic scaling is enabled for the resource. The default value is 'false'.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled the enabled flag. Specifies whether automatic scaling is enabled for the resource. The default value is 'false'.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name the name of the autoscale setting.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name the name of the autoscale setting.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param notifications the collection of notifications.
         * 
         * @return builder
         * 
         */
        public Builder notifications(@Nullable Output> notifications) {
            $.notifications = notifications;
            return this;
        }

        /**
         * @param notifications the collection of notifications.
         * 
         * @return builder
         * 
         */
        public Builder notifications(List notifications) {
            return notifications(Output.of(notifications));
        }

        /**
         * @param notifications the collection of notifications.
         * 
         * @return builder
         * 
         */
        public Builder notifications(AutoscaleNotificationArgs... notifications) {
            return notifications(List.of(notifications));
        }

        /**
         * @param predictiveAutoscalePolicy the predictive autoscale policy mode.
         * 
         * @return builder
         * 
         */
        public Builder predictiveAutoscalePolicy(@Nullable Output predictiveAutoscalePolicy) {
            $.predictiveAutoscalePolicy = predictiveAutoscalePolicy;
            return this;
        }

        /**
         * @param predictiveAutoscalePolicy the predictive autoscale policy mode.
         * 
         * @return builder
         * 
         */
        public Builder predictiveAutoscalePolicy(PredictiveAutoscalePolicyArgs predictiveAutoscalePolicy) {
            return predictiveAutoscalePolicy(Output.of(predictiveAutoscalePolicy));
        }

        /**
         * @param profiles the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.
         * 
         * @return builder
         * 
         */
        public Builder profiles(Output> profiles) {
            $.profiles = profiles;
            return this;
        }

        /**
         * @param profiles the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.
         * 
         * @return builder
         * 
         */
        public Builder profiles(List profiles) {
            return profiles(Output.of(profiles));
        }

        /**
         * @param profiles the collection of automatic scaling profiles that specify different scaling parameters for different time periods. A maximum of 20 profiles can be specified.
         * 
         * @return builder
         * 
         */
        public Builder profiles(AutoscaleProfileArgs... profiles) {
            return profiles(List.of(profiles));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param tags Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetResourceLocation the location of the resource that the autoscale setting should be added to.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceLocation(@Nullable Output targetResourceLocation) {
            $.targetResourceLocation = targetResourceLocation;
            return this;
        }

        /**
         * @param targetResourceLocation the location of the resource that the autoscale setting should be added to.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceLocation(String targetResourceLocation) {
            return targetResourceLocation(Output.of(targetResourceLocation));
        }

        /**
         * @param targetResourceUri the resource identifier of the resource that the autoscale setting should be added to.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceUri(@Nullable Output targetResourceUri) {
            $.targetResourceUri = targetResourceUri;
            return this;
        }

        /**
         * @param targetResourceUri the resource identifier of the resource that the autoscale setting should be added to.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceUri(String targetResourceUri) {
            return targetResourceUri(Output.of(targetResourceUri));
        }

        public AutoscaleSettingArgs build() {
            $.enabled = Codegen.booleanProp("enabled").output().arg($.enabled).def(false).getNullable();
            if ($.profiles == null) {
                throw new MissingRequiredPropertyException("AutoscaleSettingArgs", "profiles");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AutoscaleSettingArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy