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

com.pulumi.azurenative.databox.JobArgs Maven / Gradle / Ivy

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

import com.pulumi.azurenative.databox.enums.JobDeliveryType;
import com.pulumi.azurenative.databox.enums.TransferType;
import com.pulumi.azurenative.databox.inputs.DataBoxCustomerDiskJobDetailsArgs;
import com.pulumi.azurenative.databox.inputs.DataBoxDiskJobDetailsArgs;
import com.pulumi.azurenative.databox.inputs.DataBoxHeavyJobDetailsArgs;
import com.pulumi.azurenative.databox.inputs.DataBoxJobDetailsArgs;
import com.pulumi.azurenative.databox.inputs.JobDeliveryInfoArgs;
import com.pulumi.azurenative.databox.inputs.ResourceIdentityArgs;
import com.pulumi.azurenative.databox.inputs.SkuArgs;
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.Object;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final JobArgs Empty = new JobArgs();

    /**
     * Delivery Info of Job.
     * 
     */
    @Import(name="deliveryInfo")
    private @Nullable Output deliveryInfo;

    /**
     * @return Delivery Info of Job.
     * 
     */
    public Optional> deliveryInfo() {
        return Optional.ofNullable(this.deliveryInfo);
    }

    /**
     * Delivery type of Job.
     * 
     */
    @Import(name="deliveryType")
    private @Nullable Output> deliveryType;

    /**
     * @return Delivery type of Job.
     * 
     */
    public Optional>> deliveryType() {
        return Optional.ofNullable(this.deliveryType);
    }

    /**
     * Details of a job run. This field will only be sent for expand details filter.
     * 
     */
    @Import(name="details")
    private @Nullable Output details;

    /**
     * @return Details of a job run. This field will only be sent for expand details filter.
     * 
     */
    public Optional> details() {
        return Optional.ofNullable(this.details);
    }

    /**
     * Msi identity of the resource
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

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

    /**
     * The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    @Import(name="jobName")
    private @Nullable Output jobName;

    /**
     * @return The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    public Optional> jobName() {
        return Optional.ofNullable(this.jobName);
    }

    /**
     * The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The Resource Group Name
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The Resource Group Name
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The sku type.
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return The sku type.
     * 
     */
    public Output sku() {
        return this.sku;
    }

    /**
     * The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Type of the data transfer.
     * 
     */
    @Import(name="transferType", required=true)
    private Output> transferType;

    /**
     * @return Type of the data transfer.
     * 
     */
    public Output> transferType() {
        return this.transferType;
    }

    private JobArgs() {}

    private JobArgs(JobArgs $) {
        this.deliveryInfo = $.deliveryInfo;
        this.deliveryType = $.deliveryType;
        this.details = $.details;
        this.identity = $.identity;
        this.jobName = $.jobName;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.transferType = $.transferType;
    }

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

    public static final class Builder {
        private JobArgs $;

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

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

        /**
         * @param deliveryInfo Delivery Info of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryInfo(@Nullable Output deliveryInfo) {
            $.deliveryInfo = deliveryInfo;
            return this;
        }

        /**
         * @param deliveryInfo Delivery Info of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryInfo(JobDeliveryInfoArgs deliveryInfo) {
            return deliveryInfo(Output.of(deliveryInfo));
        }

        /**
         * @param deliveryType Delivery type of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryType(@Nullable Output> deliveryType) {
            $.deliveryType = deliveryType;
            return this;
        }

        /**
         * @param deliveryType Delivery type of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryType(Either deliveryType) {
            return deliveryType(Output.of(deliveryType));
        }

        /**
         * @param deliveryType Delivery type of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryType(String deliveryType) {
            return deliveryType(Either.ofLeft(deliveryType));
        }

        /**
         * @param deliveryType Delivery type of Job.
         * 
         * @return builder
         * 
         */
        public Builder deliveryType(JobDeliveryType deliveryType) {
            return deliveryType(Either.ofRight(deliveryType));
        }

        /**
         * @param details Details of a job run. This field will only be sent for expand details filter.
         * 
         * @return builder
         * 
         */
        public Builder details(@Nullable Output details) {
            $.details = details;
            return this;
        }

        /**
         * @param details Details of a job run. This field will only be sent for expand details filter.
         * 
         * @return builder
         * 
         */
        public Builder details(Object details) {
            return details(Output.of(details));
        }

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

        /**
         * @param identity Msi identity of the resource
         * 
         * @return builder
         * 
         */
        public Builder identity(ResourceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param jobName The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder jobName(@Nullable Output jobName) {
            $.jobName = jobName;
            return this;
        }

        /**
         * @param jobName The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder jobName(String jobName) {
            return jobName(Output.of(jobName));
        }

        /**
         * @param location The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param sku The sku type.
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The sku type.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param tags The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param transferType Type of the data transfer.
         * 
         * @return builder
         * 
         */
        public Builder transferType(Output> transferType) {
            $.transferType = transferType;
            return this;
        }

        /**
         * @param transferType Type of the data transfer.
         * 
         * @return builder
         * 
         */
        public Builder transferType(Either transferType) {
            return transferType(Output.of(transferType));
        }

        /**
         * @param transferType Type of the data transfer.
         * 
         * @return builder
         * 
         */
        public Builder transferType(String transferType) {
            return transferType(Either.ofLeft(transferType));
        }

        /**
         * @param transferType Type of the data transfer.
         * 
         * @return builder
         * 
         */
        public Builder transferType(TransferType transferType) {
            return transferType(Either.ofRight(transferType));
        }

        public JobArgs build() {
            $.deliveryType = Codegen.stringProp("deliveryType").left(JobDeliveryType.class).output().arg($.deliveryType).def("NonScheduled").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("JobArgs", "resourceGroupName");
            }
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("JobArgs", "sku");
            }
            if ($.transferType == null) {
                throw new MissingRequiredPropertyException("JobArgs", "transferType");
            }
            return $;
        }
    }

}