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

com.pulumi.azurenative.servicefabric.inputs.AddRemoveIncrementalNamedPartitionScalingMechanismArgs 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.servicefabric.inputs;

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.Integer;
import java.lang.String;
import java.util.Objects;


/**
 * Represents a scaling mechanism for adding or removing named partitions of a stateless service. Partition names are in the format '0','1'...'N-1'.
 * 
 */
public final class AddRemoveIncrementalNamedPartitionScalingMechanismArgs extends com.pulumi.resources.ResourceArgs {

    public static final AddRemoveIncrementalNamedPartitionScalingMechanismArgs Empty = new AddRemoveIncrementalNamedPartitionScalingMechanismArgs();

    /**
     * Enumerates the ways that a service can be partitioned.
     * Expected value is 'AddRemoveIncrementalNamedPartition'.
     * 
     */
    @Import(name="kind", required=true)
    private Output kind;

    /**
     * @return Enumerates the ways that a service can be partitioned.
     * Expected value is 'AddRemoveIncrementalNamedPartition'.
     * 
     */
    public Output kind() {
        return this.kind;
    }

    /**
     * Maximum number of named partitions of the service.
     * 
     */
    @Import(name="maxPartitionCount", required=true)
    private Output maxPartitionCount;

    /**
     * @return Maximum number of named partitions of the service.
     * 
     */
    public Output maxPartitionCount() {
        return this.maxPartitionCount;
    }

    /**
     * Minimum number of named partitions of the service.
     * 
     */
    @Import(name="minPartitionCount", required=true)
    private Output minPartitionCount;

    /**
     * @return Minimum number of named partitions of the service.
     * 
     */
    public Output minPartitionCount() {
        return this.minPartitionCount;
    }

    /**
     * The number of instances to add or remove during a scaling operation.
     * 
     */
    @Import(name="scaleIncrement", required=true)
    private Output scaleIncrement;

    /**
     * @return The number of instances to add or remove during a scaling operation.
     * 
     */
    public Output scaleIncrement() {
        return this.scaleIncrement;
    }

    private AddRemoveIncrementalNamedPartitionScalingMechanismArgs() {}

    private AddRemoveIncrementalNamedPartitionScalingMechanismArgs(AddRemoveIncrementalNamedPartitionScalingMechanismArgs $) {
        this.kind = $.kind;
        this.maxPartitionCount = $.maxPartitionCount;
        this.minPartitionCount = $.minPartitionCount;
        this.scaleIncrement = $.scaleIncrement;
    }

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

    public static final class Builder {
        private AddRemoveIncrementalNamedPartitionScalingMechanismArgs $;

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

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

        /**
         * @param kind Enumerates the ways that a service can be partitioned.
         * Expected value is 'AddRemoveIncrementalNamedPartition'.
         * 
         * @return builder
         * 
         */
        public Builder kind(Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Enumerates the ways that a service can be partitioned.
         * Expected value is 'AddRemoveIncrementalNamedPartition'.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param maxPartitionCount Maximum number of named partitions of the service.
         * 
         * @return builder
         * 
         */
        public Builder maxPartitionCount(Output maxPartitionCount) {
            $.maxPartitionCount = maxPartitionCount;
            return this;
        }

        /**
         * @param maxPartitionCount Maximum number of named partitions of the service.
         * 
         * @return builder
         * 
         */
        public Builder maxPartitionCount(Integer maxPartitionCount) {
            return maxPartitionCount(Output.of(maxPartitionCount));
        }

        /**
         * @param minPartitionCount Minimum number of named partitions of the service.
         * 
         * @return builder
         * 
         */
        public Builder minPartitionCount(Output minPartitionCount) {
            $.minPartitionCount = minPartitionCount;
            return this;
        }

        /**
         * @param minPartitionCount Minimum number of named partitions of the service.
         * 
         * @return builder
         * 
         */
        public Builder minPartitionCount(Integer minPartitionCount) {
            return minPartitionCount(Output.of(minPartitionCount));
        }

        /**
         * @param scaleIncrement The number of instances to add or remove during a scaling operation.
         * 
         * @return builder
         * 
         */
        public Builder scaleIncrement(Output scaleIncrement) {
            $.scaleIncrement = scaleIncrement;
            return this;
        }

        /**
         * @param scaleIncrement The number of instances to add or remove during a scaling operation.
         * 
         * @return builder
         * 
         */
        public Builder scaleIncrement(Integer scaleIncrement) {
            return scaleIncrement(Output.of(scaleIncrement));
        }

        public AddRemoveIncrementalNamedPartitionScalingMechanismArgs build() {
            $.kind = Codegen.stringProp("kind").output().arg($.kind).require();
            if ($.maxPartitionCount == null) {
                throw new MissingRequiredPropertyException("AddRemoveIncrementalNamedPartitionScalingMechanismArgs", "maxPartitionCount");
            }
            if ($.minPartitionCount == null) {
                throw new MissingRequiredPropertyException("AddRemoveIncrementalNamedPartitionScalingMechanismArgs", "minPartitionCount");
            }
            if ($.scaleIncrement == null) {
                throw new MissingRequiredPropertyException("AddRemoveIncrementalNamedPartitionScalingMechanismArgs", "scaleIncrement");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy