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

com.pulumi.azurenative.virtualmachineimages.outputs.GetVirtualMachineImageTemplateResult 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.virtualmachineimages.outputs;

import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateFileCustomizerResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateIdentityResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateLastRunStatusResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateManagedImageDistributorResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateManagedImageSourceResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplatePlatformImageSourceResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplatePowerShellCustomizerResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplatePropertiesResponseOptimize;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplatePropertiesResponseValidate;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateRestartCustomizerResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateSharedImageDistributorResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateSharedImageVersionSourceResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateShellCustomizerResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateVhdDistributorResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateVmProfileResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateWindowsUpdateCustomizerResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.ProvisioningErrorResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.SystemDataResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetVirtualMachineImageTemplateResult {
    /**
     * @return Maximum duration to wait while building the image template (includes all customizations, optimization, validations, and distributions). Omit or specify 0 to use the default (4 hours).
     * 
     */
    private @Nullable Integer buildTimeoutInMinutes;
    /**
     * @return Specifies the properties used to describe the customization steps of the image, like Image source etc
     * 
     */
    private @Nullable List customize;
    /**
     * @return The distribution targets where the image output needs to go to.
     * 
     */
    private List distribute;
    /**
     * @return The staging resource group id in the same subscription as the image template that will be used to build the image. This read-only field differs from 'stagingResourceGroup' only if the value specified in the 'stagingResourceGroup' field is empty.
     * 
     */
    private String exactStagingResourceGroup;
    /**
     * @return Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
     * 
     */
    private String id;
    /**
     * @return The identity of the image template, if configured.
     * 
     */
    private ImageTemplateIdentityResponse identity;
    /**
     * @return State of 'run' that is currently executing or was last executed.
     * 
     */
    private ImageTemplateLastRunStatusResponse lastRunStatus;
    /**
     * @return The geo-location where the resource lives
     * 
     */
    private String location;
    /**
     * @return The name of the resource
     * 
     */
    private String name;
    /**
     * @return Specifies optimization to be performed on image.
     * 
     */
    private @Nullable ImageTemplatePropertiesResponseOptimize optimize;
    /**
     * @return Provisioning error, if any
     * 
     */
    private ProvisioningErrorResponse provisioningError;
    /**
     * @return Provisioning state of the resource
     * 
     */
    private String provisioningState;
    /**
     * @return Specifies the properties used to describe the source image.
     * 
     */
    private Object source;
    /**
     * @return The staging resource group id in the same subscription as the image template that will be used to build the image. If this field is empty, a resource group with a random name will be created. If the resource group specified in this field doesn't exist, it will be created with the same name. If the resource group specified exists, it must be empty and in the same region as the image template. The resource group created will be deleted during template deletion if this field is empty or the resource group specified doesn't exist, but if the resource group specified exists the resources created in the resource group will be deleted during template deletion and the resource group itself will remain.
     * 
     */
    private @Nullable String stagingResourceGroup;
    /**
     * @return Azure Resource Manager metadata containing createdBy and modifiedBy information.
     * 
     */
    private SystemDataResponse systemData;
    /**
     * @return Resource tags.
     * 
     */
    private @Nullable Map tags;
    /**
     * @return The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     * 
     */
    private String type;
    /**
     * @return Configuration options and list of validations to be performed on the resulting image.
     * 
     */
    private @Nullable ImageTemplatePropertiesResponseValidate validate;
    /**
     * @return Describes how virtual machine is set up to build images
     * 
     */
    private @Nullable ImageTemplateVmProfileResponse vmProfile;

    private GetVirtualMachineImageTemplateResult() {}
    /**
     * @return Maximum duration to wait while building the image template (includes all customizations, optimization, validations, and distributions). Omit or specify 0 to use the default (4 hours).
     * 
     */
    public Optional buildTimeoutInMinutes() {
        return Optional.ofNullable(this.buildTimeoutInMinutes);
    }
    /**
     * @return Specifies the properties used to describe the customization steps of the image, like Image source etc
     * 
     */
    public List customize() {
        return this.customize == null ? List.of() : this.customize;
    }
    /**
     * @return The distribution targets where the image output needs to go to.
     * 
     */
    public List distribute() {
        return this.distribute;
    }
    /**
     * @return The staging resource group id in the same subscription as the image template that will be used to build the image. This read-only field differs from 'stagingResourceGroup' only if the value specified in the 'stagingResourceGroup' field is empty.
     * 
     */
    public String exactStagingResourceGroup() {
        return this.exactStagingResourceGroup;
    }
    /**
     * @return Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return The identity of the image template, if configured.
     * 
     */
    public ImageTemplateIdentityResponse identity() {
        return this.identity;
    }
    /**
     * @return State of 'run' that is currently executing or was last executed.
     * 
     */
    public ImageTemplateLastRunStatusResponse lastRunStatus() {
        return this.lastRunStatus;
    }
    /**
     * @return The geo-location where the resource lives
     * 
     */
    public String location() {
        return this.location;
    }
    /**
     * @return The name of the resource
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Specifies optimization to be performed on image.
     * 
     */
    public Optional optimize() {
        return Optional.ofNullable(this.optimize);
    }
    /**
     * @return Provisioning error, if any
     * 
     */
    public ProvisioningErrorResponse provisioningError() {
        return this.provisioningError;
    }
    /**
     * @return Provisioning state of the resource
     * 
     */
    public String provisioningState() {
        return this.provisioningState;
    }
    /**
     * @return Specifies the properties used to describe the source image.
     * 
     */
    public Object source() {
        return this.source;
    }
    /**
     * @return The staging resource group id in the same subscription as the image template that will be used to build the image. If this field is empty, a resource group with a random name will be created. If the resource group specified in this field doesn't exist, it will be created with the same name. If the resource group specified exists, it must be empty and in the same region as the image template. The resource group created will be deleted during template deletion if this field is empty or the resource group specified doesn't exist, but if the resource group specified exists the resources created in the resource group will be deleted during template deletion and the resource group itself will remain.
     * 
     */
    public Optional stagingResourceGroup() {
        return Optional.ofNullable(this.stagingResourceGroup);
    }
    /**
     * @return Azure Resource Manager metadata containing createdBy and modifiedBy information.
     * 
     */
    public SystemDataResponse systemData() {
        return this.systemData;
    }
    /**
     * @return Resource tags.
     * 
     */
    public Map tags() {
        return this.tags == null ? Map.of() : this.tags;
    }
    /**
     * @return The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return Configuration options and list of validations to be performed on the resulting image.
     * 
     */
    public Optional validate() {
        return Optional.ofNullable(this.validate);
    }
    /**
     * @return Describes how virtual machine is set up to build images
     * 
     */
    public Optional vmProfile() {
        return Optional.ofNullable(this.vmProfile);
    }

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

    public static Builder builder(GetVirtualMachineImageTemplateResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Integer buildTimeoutInMinutes;
        private @Nullable List customize;
        private List distribute;
        private String exactStagingResourceGroup;
        private String id;
        private ImageTemplateIdentityResponse identity;
        private ImageTemplateLastRunStatusResponse lastRunStatus;
        private String location;
        private String name;
        private @Nullable ImageTemplatePropertiesResponseOptimize optimize;
        private ProvisioningErrorResponse provisioningError;
        private String provisioningState;
        private Object source;
        private @Nullable String stagingResourceGroup;
        private SystemDataResponse systemData;
        private @Nullable Map tags;
        private String type;
        private @Nullable ImageTemplatePropertiesResponseValidate validate;
        private @Nullable ImageTemplateVmProfileResponse vmProfile;
        public Builder() {}
        public Builder(GetVirtualMachineImageTemplateResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.buildTimeoutInMinutes = defaults.buildTimeoutInMinutes;
    	      this.customize = defaults.customize;
    	      this.distribute = defaults.distribute;
    	      this.exactStagingResourceGroup = defaults.exactStagingResourceGroup;
    	      this.id = defaults.id;
    	      this.identity = defaults.identity;
    	      this.lastRunStatus = defaults.lastRunStatus;
    	      this.location = defaults.location;
    	      this.name = defaults.name;
    	      this.optimize = defaults.optimize;
    	      this.provisioningError = defaults.provisioningError;
    	      this.provisioningState = defaults.provisioningState;
    	      this.source = defaults.source;
    	      this.stagingResourceGroup = defaults.stagingResourceGroup;
    	      this.systemData = defaults.systemData;
    	      this.tags = defaults.tags;
    	      this.type = defaults.type;
    	      this.validate = defaults.validate;
    	      this.vmProfile = defaults.vmProfile;
        }

        @CustomType.Setter
        public Builder buildTimeoutInMinutes(@Nullable Integer buildTimeoutInMinutes) {

            this.buildTimeoutInMinutes = buildTimeoutInMinutes;
            return this;
        }
        @CustomType.Setter
        public Builder customize(@Nullable List customize) {

            this.customize = customize;
            return this;
        }
        public Builder customize(Object... customize) {
            return customize(List.of(customize));
        }
        @CustomType.Setter
        public Builder distribute(List distribute) {
            if (distribute == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "distribute");
            }
            this.distribute = distribute;
            return this;
        }
        public Builder distribute(Object... distribute) {
            return distribute(List.of(distribute));
        }
        @CustomType.Setter
        public Builder exactStagingResourceGroup(String exactStagingResourceGroup) {
            if (exactStagingResourceGroup == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "exactStagingResourceGroup");
            }
            this.exactStagingResourceGroup = exactStagingResourceGroup;
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            if (id == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "id");
            }
            this.id = id;
            return this;
        }
        @CustomType.Setter
        public Builder identity(ImageTemplateIdentityResponse identity) {
            if (identity == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "identity");
            }
            this.identity = identity;
            return this;
        }
        @CustomType.Setter
        public Builder lastRunStatus(ImageTemplateLastRunStatusResponse lastRunStatus) {
            if (lastRunStatus == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "lastRunStatus");
            }
            this.lastRunStatus = lastRunStatus;
            return this;
        }
        @CustomType.Setter
        public Builder location(String location) {
            if (location == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "location");
            }
            this.location = location;
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder optimize(@Nullable ImageTemplatePropertiesResponseOptimize optimize) {

            this.optimize = optimize;
            return this;
        }
        @CustomType.Setter
        public Builder provisioningError(ProvisioningErrorResponse provisioningError) {
            if (provisioningError == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "provisioningError");
            }
            this.provisioningError = provisioningError;
            return this;
        }
        @CustomType.Setter
        public Builder provisioningState(String provisioningState) {
            if (provisioningState == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "provisioningState");
            }
            this.provisioningState = provisioningState;
            return this;
        }
        @CustomType.Setter
        public Builder source(Object source) {
            if (source == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "source");
            }
            this.source = source;
            return this;
        }
        @CustomType.Setter
        public Builder stagingResourceGroup(@Nullable String stagingResourceGroup) {

            this.stagingResourceGroup = stagingResourceGroup;
            return this;
        }
        @CustomType.Setter
        public Builder systemData(SystemDataResponse systemData) {
            if (systemData == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "systemData");
            }
            this.systemData = systemData;
            return this;
        }
        @CustomType.Setter
        public Builder tags(@Nullable Map tags) {

            this.tags = tags;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineImageTemplateResult", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder validate(@Nullable ImageTemplatePropertiesResponseValidate validate) {

            this.validate = validate;
            return this;
        }
        @CustomType.Setter
        public Builder vmProfile(@Nullable ImageTemplateVmProfileResponse vmProfile) {

            this.vmProfile = vmProfile;
            return this;
        }
        public GetVirtualMachineImageTemplateResult build() {
            final var _resultValue = new GetVirtualMachineImageTemplateResult();
            _resultValue.buildTimeoutInMinutes = buildTimeoutInMinutes;
            _resultValue.customize = customize;
            _resultValue.distribute = distribute;
            _resultValue.exactStagingResourceGroup = exactStagingResourceGroup;
            _resultValue.id = id;
            _resultValue.identity = identity;
            _resultValue.lastRunStatus = lastRunStatus;
            _resultValue.location = location;
            _resultValue.name = name;
            _resultValue.optimize = optimize;
            _resultValue.provisioningError = provisioningError;
            _resultValue.provisioningState = provisioningState;
            _resultValue.source = source;
            _resultValue.stagingResourceGroup = stagingResourceGroup;
            _resultValue.systemData = systemData;
            _resultValue.tags = tags;
            _resultValue.type = type;
            _resultValue.validate = validate;
            _resultValue.vmProfile = vmProfile;
            return _resultValue;
        }
    }
}