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

com.pulumi.azurenative.devtestlab.ServiceFabricScheduleArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.devtestlab;

import com.pulumi.azurenative.devtestlab.enums.EnableStatus;
import com.pulumi.azurenative.devtestlab.inputs.DayDetailsArgs;
import com.pulumi.azurenative.devtestlab.inputs.HourDetailsArgs;
import com.pulumi.azurenative.devtestlab.inputs.NotificationSettingsArgs;
import com.pulumi.azurenative.devtestlab.inputs.WeekDetailsArgs;
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.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServiceFabricScheduleArgs Empty = new ServiceFabricScheduleArgs();

    /**
     * If the schedule will occur once each day of the week, specify the daily recurrence.
     * 
     */
    @Import(name="dailyRecurrence")
    private @Nullable Output dailyRecurrence;

    /**
     * @return If the schedule will occur once each day of the week, specify the daily recurrence.
     * 
     */
    public Optional> dailyRecurrence() {
        return Optional.ofNullable(this.dailyRecurrence);
    }

    /**
     * If the schedule will occur multiple times a day, specify the hourly recurrence.
     * 
     */
    @Import(name="hourlyRecurrence")
    private @Nullable Output hourlyRecurrence;

    /**
     * @return If the schedule will occur multiple times a day, specify the hourly recurrence.
     * 
     */
    public Optional> hourlyRecurrence() {
        return Optional.ofNullable(this.hourlyRecurrence);
    }

    /**
     * The name of the lab.
     * 
     */
    @Import(name="labName", required=true)
    private Output labName;

    /**
     * @return The name of the lab.
     * 
     */
    public Output labName() {
        return this.labName;
    }

    /**
     * The location of the resource.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The location of the resource.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

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

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

    /**
     * Notification settings.
     * 
     */
    @Import(name="notificationSettings")
    private @Nullable Output notificationSettings;

    /**
     * @return Notification settings.
     * 
     */
    public Optional> notificationSettings() {
        return Optional.ofNullable(this.notificationSettings);
    }

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

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

    /**
     * The name of the service fabric.
     * 
     */
    @Import(name="serviceFabricName", required=true)
    private Output serviceFabricName;

    /**
     * @return The name of the service fabric.
     * 
     */
    public Output serviceFabricName() {
        return this.serviceFabricName;
    }

    /**
     * The status of the schedule (i.e. Enabled, Disabled)
     * 
     */
    @Import(name="status")
    private @Nullable Output> status;

    /**
     * @return The status of the schedule (i.e. Enabled, Disabled)
     * 
     */
    public Optional>> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * The tags of the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The tags of the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The resource ID to which the schedule belongs
     * 
     */
    @Import(name="targetResourceId")
    private @Nullable Output targetResourceId;

    /**
     * @return The resource ID to which the schedule belongs
     * 
     */
    public Optional> targetResourceId() {
        return Optional.ofNullable(this.targetResourceId);
    }

    /**
     * The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
     * 
     */
    @Import(name="taskType")
    private @Nullable Output taskType;

    /**
     * @return The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
     * 
     */
    public Optional> taskType() {
        return Optional.ofNullable(this.taskType);
    }

    /**
     * The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)
     * 
     */
    @Import(name="timeZoneId")
    private @Nullable Output timeZoneId;

    /**
     * @return The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)
     * 
     */
    public Optional> timeZoneId() {
        return Optional.ofNullable(this.timeZoneId);
    }

    /**
     * The name of the user profile.
     * 
     */
    @Import(name="userName", required=true)
    private Output userName;

    /**
     * @return The name of the user profile.
     * 
     */
    public Output userName() {
        return this.userName;
    }

    /**
     * If the schedule will occur only some days of the week, specify the weekly recurrence.
     * 
     */
    @Import(name="weeklyRecurrence")
    private @Nullable Output weeklyRecurrence;

    /**
     * @return If the schedule will occur only some days of the week, specify the weekly recurrence.
     * 
     */
    public Optional> weeklyRecurrence() {
        return Optional.ofNullable(this.weeklyRecurrence);
    }

    private ServiceFabricScheduleArgs() {}

    private ServiceFabricScheduleArgs(ServiceFabricScheduleArgs $) {
        this.dailyRecurrence = $.dailyRecurrence;
        this.hourlyRecurrence = $.hourlyRecurrence;
        this.labName = $.labName;
        this.location = $.location;
        this.name = $.name;
        this.notificationSettings = $.notificationSettings;
        this.resourceGroupName = $.resourceGroupName;
        this.serviceFabricName = $.serviceFabricName;
        this.status = $.status;
        this.tags = $.tags;
        this.targetResourceId = $.targetResourceId;
        this.taskType = $.taskType;
        this.timeZoneId = $.timeZoneId;
        this.userName = $.userName;
        this.weeklyRecurrence = $.weeklyRecurrence;
    }

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

    public static final class Builder {
        private ServiceFabricScheduleArgs $;

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

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

        /**
         * @param dailyRecurrence If the schedule will occur once each day of the week, specify the daily recurrence.
         * 
         * @return builder
         * 
         */
        public Builder dailyRecurrence(@Nullable Output dailyRecurrence) {
            $.dailyRecurrence = dailyRecurrence;
            return this;
        }

        /**
         * @param dailyRecurrence If the schedule will occur once each day of the week, specify the daily recurrence.
         * 
         * @return builder
         * 
         */
        public Builder dailyRecurrence(DayDetailsArgs dailyRecurrence) {
            return dailyRecurrence(Output.of(dailyRecurrence));
        }

        /**
         * @param hourlyRecurrence If the schedule will occur multiple times a day, specify the hourly recurrence.
         * 
         * @return builder
         * 
         */
        public Builder hourlyRecurrence(@Nullable Output hourlyRecurrence) {
            $.hourlyRecurrence = hourlyRecurrence;
            return this;
        }

        /**
         * @param hourlyRecurrence If the schedule will occur multiple times a day, specify the hourly recurrence.
         * 
         * @return builder
         * 
         */
        public Builder hourlyRecurrence(HourDetailsArgs hourlyRecurrence) {
            return hourlyRecurrence(Output.of(hourlyRecurrence));
        }

        /**
         * @param labName The name of the lab.
         * 
         * @return builder
         * 
         */
        public Builder labName(Output labName) {
            $.labName = labName;
            return this;
        }

        /**
         * @param labName The name of the lab.
         * 
         * @return builder
         * 
         */
        public Builder labName(String labName) {
            return labName(Output.of(labName));
        }

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

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

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

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

        /**
         * @param notificationSettings Notification settings.
         * 
         * @return builder
         * 
         */
        public Builder notificationSettings(@Nullable Output notificationSettings) {
            $.notificationSettings = notificationSettings;
            return this;
        }

        /**
         * @param notificationSettings Notification settings.
         * 
         * @return builder
         * 
         */
        public Builder notificationSettings(NotificationSettingsArgs notificationSettings) {
            return notificationSettings(Output.of(notificationSettings));
        }

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

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

        /**
         * @param serviceFabricName The name of the service fabric.
         * 
         * @return builder
         * 
         */
        public Builder serviceFabricName(Output serviceFabricName) {
            $.serviceFabricName = serviceFabricName;
            return this;
        }

        /**
         * @param serviceFabricName The name of the service fabric.
         * 
         * @return builder
         * 
         */
        public Builder serviceFabricName(String serviceFabricName) {
            return serviceFabricName(Output.of(serviceFabricName));
        }

        /**
         * @param status The status of the schedule (i.e. Enabled, Disabled)
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output> status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of the schedule (i.e. Enabled, Disabled)
         * 
         * @return builder
         * 
         */
        public Builder status(Either status) {
            return status(Output.of(status));
        }

        /**
         * @param status The status of the schedule (i.e. Enabled, Disabled)
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Either.ofLeft(status));
        }

        /**
         * @param status The status of the schedule (i.e. Enabled, Disabled)
         * 
         * @return builder
         * 
         */
        public Builder status(EnableStatus status) {
            return status(Either.ofRight(status));
        }

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

        /**
         * @param tags The tags of the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetResourceId The resource ID to which the schedule belongs
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(@Nullable Output targetResourceId) {
            $.targetResourceId = targetResourceId;
            return this;
        }

        /**
         * @param targetResourceId The resource ID to which the schedule belongs
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(String targetResourceId) {
            return targetResourceId(Output.of(targetResourceId));
        }

        /**
         * @param taskType The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
         * 
         * @return builder
         * 
         */
        public Builder taskType(@Nullable Output taskType) {
            $.taskType = taskType;
            return this;
        }

        /**
         * @param taskType The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
         * 
         * @return builder
         * 
         */
        public Builder taskType(String taskType) {
            return taskType(Output.of(taskType));
        }

        /**
         * @param timeZoneId The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)
         * 
         * @return builder
         * 
         */
        public Builder timeZoneId(@Nullable Output timeZoneId) {
            $.timeZoneId = timeZoneId;
            return this;
        }

        /**
         * @param timeZoneId The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)
         * 
         * @return builder
         * 
         */
        public Builder timeZoneId(String timeZoneId) {
            return timeZoneId(Output.of(timeZoneId));
        }

        /**
         * @param userName The name of the user profile.
         * 
         * @return builder
         * 
         */
        public Builder userName(Output userName) {
            $.userName = userName;
            return this;
        }

        /**
         * @param userName The name of the user profile.
         * 
         * @return builder
         * 
         */
        public Builder userName(String userName) {
            return userName(Output.of(userName));
        }

        /**
         * @param weeklyRecurrence If the schedule will occur only some days of the week, specify the weekly recurrence.
         * 
         * @return builder
         * 
         */
        public Builder weeklyRecurrence(@Nullable Output weeklyRecurrence) {
            $.weeklyRecurrence = weeklyRecurrence;
            return this;
        }

        /**
         * @param weeklyRecurrence If the schedule will occur only some days of the week, specify the weekly recurrence.
         * 
         * @return builder
         * 
         */
        public Builder weeklyRecurrence(WeekDetailsArgs weeklyRecurrence) {
            return weeklyRecurrence(Output.of(weeklyRecurrence));
        }

        public ServiceFabricScheduleArgs build() {
            if ($.labName == null) {
                throw new MissingRequiredPropertyException("ServiceFabricScheduleArgs", "labName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ServiceFabricScheduleArgs", "resourceGroupName");
            }
            if ($.serviceFabricName == null) {
                throw new MissingRequiredPropertyException("ServiceFabricScheduleArgs", "serviceFabricName");
            }
            $.status = Codegen.stringProp("status").left(EnableStatus.class).output().arg($.status).def("Disabled").getNullable();
            if ($.userName == null) {
                throw new MissingRequiredPropertyException("ServiceFabricScheduleArgs", "userName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy