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

com.pulumi.azurenative.operationalinsights.MachineGroupArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
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.azurenative.operationalinsights;

import com.pulumi.azurenative.operationalinsights.enums.MachineGroupType;
import com.pulumi.azurenative.operationalinsights.inputs.MachineReferenceWithHintsArgs;
import com.pulumi.core.Either;
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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final MachineGroupArgs Empty = new MachineGroupArgs();

    /**
     * Count of machines in this group. The value of count may be bigger than the number of machines in case of the group has been truncated due to exceeding the max number of machines a group can handle.
     * 
     */
    @Import(name="count")
    private @Nullable Output count;

    /**
     * @return Count of machines in this group. The value of count may be bigger than the number of machines in case of the group has been truncated due to exceeding the max number of machines a group can handle.
     * 
     */
    public Optional> count() {
        return Optional.ofNullable(this.count);
    }

    /**
     * User defined name for the group
     * 
     */
    @Import(name="displayName", required=true)
    private Output displayName;

    /**
     * @return User defined name for the group
     * 
     */
    public Output displayName() {
        return this.displayName;
    }

    /**
     * Type of the machine group
     * 
     */
    @Import(name="groupType")
    private @Nullable Output> groupType;

    /**
     * @return Type of the machine group
     * 
     */
    public Optional>> groupType() {
        return Optional.ofNullable(this.groupType);
    }

    /**
     * Additional resource type qualifier.
     * Expected value is 'machineGroup'.
     * 
     */
    @Import(name="kind", required=true)
    private Output kind;

    /**
     * @return Additional resource type qualifier.
     * Expected value is 'machineGroup'.
     * 
     */
    public Output kind() {
        return this.kind;
    }

    /**
     * Machine Group resource name.
     * 
     */
    @Import(name="machineGroupName")
    private @Nullable Output machineGroupName;

    /**
     * @return Machine Group resource name.
     * 
     */
    public Optional> machineGroupName() {
        return Optional.ofNullable(this.machineGroupName);
    }

    /**
     * References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.
     * 
     */
    @Import(name="machines")
    private @Nullable Output> machines;

    /**
     * @return References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.
     * 
     */
    public Optional>> machines() {
        return Optional.ofNullable(this.machines);
    }

    /**
     * Resource group name within the specified subscriptionId.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Resource group name within the specified subscriptionId.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * OMS workspace containing the resources of interest.
     * 
     */
    @Import(name="workspaceName", required=true)
    private Output workspaceName;

    /**
     * @return OMS workspace containing the resources of interest.
     * 
     */
    public Output workspaceName() {
        return this.workspaceName;
    }

    private MachineGroupArgs() {}

    private MachineGroupArgs(MachineGroupArgs $) {
        this.count = $.count;
        this.displayName = $.displayName;
        this.groupType = $.groupType;
        this.kind = $.kind;
        this.machineGroupName = $.machineGroupName;
        this.machines = $.machines;
        this.resourceGroupName = $.resourceGroupName;
        this.workspaceName = $.workspaceName;
    }

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

    public static final class Builder {
        private MachineGroupArgs $;

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

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

        /**
         * @param count Count of machines in this group. The value of count may be bigger than the number of machines in case of the group has been truncated due to exceeding the max number of machines a group can handle.
         * 
         * @return builder
         * 
         */
        public Builder count(@Nullable Output count) {
            $.count = count;
            return this;
        }

        /**
         * @param count Count of machines in this group. The value of count may be bigger than the number of machines in case of the group has been truncated due to exceeding the max number of machines a group can handle.
         * 
         * @return builder
         * 
         */
        public Builder count(Integer count) {
            return count(Output.of(count));
        }

        /**
         * @param displayName User defined name for the group
         * 
         * @return builder
         * 
         */
        public Builder displayName(Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName User defined name for the group
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param groupType Type of the machine group
         * 
         * @return builder
         * 
         */
        public Builder groupType(@Nullable Output> groupType) {
            $.groupType = groupType;
            return this;
        }

        /**
         * @param groupType Type of the machine group
         * 
         * @return builder
         * 
         */
        public Builder groupType(Either groupType) {
            return groupType(Output.of(groupType));
        }

        /**
         * @param groupType Type of the machine group
         * 
         * @return builder
         * 
         */
        public Builder groupType(String groupType) {
            return groupType(Either.ofLeft(groupType));
        }

        /**
         * @param groupType Type of the machine group
         * 
         * @return builder
         * 
         */
        public Builder groupType(MachineGroupType groupType) {
            return groupType(Either.ofRight(groupType));
        }

        /**
         * @param kind Additional resource type qualifier.
         * Expected value is 'machineGroup'.
         * 
         * @return builder
         * 
         */
        public Builder kind(Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Additional resource type qualifier.
         * Expected value is 'machineGroup'.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param machineGroupName Machine Group resource name.
         * 
         * @return builder
         * 
         */
        public Builder machineGroupName(@Nullable Output machineGroupName) {
            $.machineGroupName = machineGroupName;
            return this;
        }

        /**
         * @param machineGroupName Machine Group resource name.
         * 
         * @return builder
         * 
         */
        public Builder machineGroupName(String machineGroupName) {
            return machineGroupName(Output.of(machineGroupName));
        }

        /**
         * @param machines References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.
         * 
         * @return builder
         * 
         */
        public Builder machines(@Nullable Output> machines) {
            $.machines = machines;
            return this;
        }

        /**
         * @param machines References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.
         * 
         * @return builder
         * 
         */
        public Builder machines(List machines) {
            return machines(Output.of(machines));
        }

        /**
         * @param machines References of the machines in this group. The hints within each reference do not represent the current value of the corresponding fields. They are a snapshot created during the last time the machine group was updated.
         * 
         * @return builder
         * 
         */
        public Builder machines(MachineReferenceWithHintsArgs... machines) {
            return machines(List.of(machines));
        }

        /**
         * @param resourceGroupName Resource group name within the specified subscriptionId.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Resource group name within the specified subscriptionId.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param workspaceName OMS workspace containing the resources of interest.
         * 
         * @return builder
         * 
         */
        public Builder workspaceName(Output workspaceName) {
            $.workspaceName = workspaceName;
            return this;
        }

        /**
         * @param workspaceName OMS workspace containing the resources of interest.
         * 
         * @return builder
         * 
         */
        public Builder workspaceName(String workspaceName) {
            return workspaceName(Output.of(workspaceName));
        }

        public MachineGroupArgs build() {
            if ($.displayName == null) {
                throw new MissingRequiredPropertyException("MachineGroupArgs", "displayName");
            }
            $.kind = Codegen.stringProp("kind").output().arg($.kind).require();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("MachineGroupArgs", "resourceGroupName");
            }
            if ($.workspaceName == null) {
                throw new MissingRequiredPropertyException("MachineGroupArgs", "workspaceName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy