
com.pulumi.azurenative.virtualmachineimages.outputs.ImageTemplateSharedImageDistributorResponse 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.DistributeVersionerLatestResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.DistributeVersionerSourceResponse;
import com.pulumi.azurenative.virtualmachineimages.outputs.TargetRegionResponse;
import com.pulumi.core.Either;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 ImageTemplateSharedImageDistributorResponse {
/**
* @return Tags that will be applied to the artifact once it has been created/updated by the distributor.
*
*/
private @Nullable Map artifactTags;
/**
* @return Flag that indicates whether created image version should be excluded from latest. Omit to use the default (false).
*
*/
private @Nullable Boolean excludeFromLatest;
/**
* @return Resource Id of the Azure Compute Gallery image
*
*/
private String galleryImageId;
/**
* @return [Deprecated] A list of regions that the image will be replicated to. This list can be specified only if targetRegions is not specified. This field is deprecated - use targetRegions instead.
*
*/
private @Nullable List replicationRegions;
/**
* @return The name to be used for the associated RunOutput.
*
*/
private String runOutputName;
/**
* @return [Deprecated] Storage account type to be used to store the shared image. Omit to use the default (Standard_LRS). This field can be specified only if replicationRegions is specified. This field is deprecated - use targetRegions instead.
*
*/
private @Nullable String storageAccountType;
/**
* @return The target regions where the distributed Image Version is going to be replicated to. This object supersedes replicationRegions and can be specified only if replicationRegions is not specified.
*
*/
private @Nullable List targetRegions;
/**
* @return Type of distribution.
* Expected value is 'SharedImage'.
*
*/
private String type;
/**
* @return Describes how to generate new x.y.z version number for distribution.
*
*/
private @Nullable Either versioning;
private ImageTemplateSharedImageDistributorResponse() {}
/**
* @return Tags that will be applied to the artifact once it has been created/updated by the distributor.
*
*/
public Map artifactTags() {
return this.artifactTags == null ? Map.of() : this.artifactTags;
}
/**
* @return Flag that indicates whether created image version should be excluded from latest. Omit to use the default (false).
*
*/
public Optional excludeFromLatest() {
return Optional.ofNullable(this.excludeFromLatest);
}
/**
* @return Resource Id of the Azure Compute Gallery image
*
*/
public String galleryImageId() {
return this.galleryImageId;
}
/**
* @return [Deprecated] A list of regions that the image will be replicated to. This list can be specified only if targetRegions is not specified. This field is deprecated - use targetRegions instead.
*
*/
public List replicationRegions() {
return this.replicationRegions == null ? List.of() : this.replicationRegions;
}
/**
* @return The name to be used for the associated RunOutput.
*
*/
public String runOutputName() {
return this.runOutputName;
}
/**
* @return [Deprecated] Storage account type to be used to store the shared image. Omit to use the default (Standard_LRS). This field can be specified only if replicationRegions is specified. This field is deprecated - use targetRegions instead.
*
*/
public Optional storageAccountType() {
return Optional.ofNullable(this.storageAccountType);
}
/**
* @return The target regions where the distributed Image Version is going to be replicated to. This object supersedes replicationRegions and can be specified only if replicationRegions is not specified.
*
*/
public List targetRegions() {
return this.targetRegions == null ? List.of() : this.targetRegions;
}
/**
* @return Type of distribution.
* Expected value is 'SharedImage'.
*
*/
public String type() {
return this.type;
}
/**
* @return Describes how to generate new x.y.z version number for distribution.
*
*/
public Optional> versioning() {
return Optional.ofNullable(this.versioning);
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ImageTemplateSharedImageDistributorResponse defaults) {
return new Builder(defaults);
}
@CustomType.Builder
public static final class Builder {
private @Nullable Map artifactTags;
private @Nullable Boolean excludeFromLatest;
private String galleryImageId;
private @Nullable List replicationRegions;
private String runOutputName;
private @Nullable String storageAccountType;
private @Nullable List targetRegions;
private String type;
private @Nullable Either versioning;
public Builder() {}
public Builder(ImageTemplateSharedImageDistributorResponse defaults) {
Objects.requireNonNull(defaults);
this.artifactTags = defaults.artifactTags;
this.excludeFromLatest = defaults.excludeFromLatest;
this.galleryImageId = defaults.galleryImageId;
this.replicationRegions = defaults.replicationRegions;
this.runOutputName = defaults.runOutputName;
this.storageAccountType = defaults.storageAccountType;
this.targetRegions = defaults.targetRegions;
this.type = defaults.type;
this.versioning = defaults.versioning;
}
@CustomType.Setter
public Builder artifactTags(@Nullable Map artifactTags) {
this.artifactTags = artifactTags;
return this;
}
@CustomType.Setter
public Builder excludeFromLatest(@Nullable Boolean excludeFromLatest) {
this.excludeFromLatest = excludeFromLatest;
return this;
}
@CustomType.Setter
public Builder galleryImageId(String galleryImageId) {
if (galleryImageId == null) {
throw new MissingRequiredPropertyException("ImageTemplateSharedImageDistributorResponse", "galleryImageId");
}
this.galleryImageId = galleryImageId;
return this;
}
@CustomType.Setter
public Builder replicationRegions(@Nullable List replicationRegions) {
this.replicationRegions = replicationRegions;
return this;
}
public Builder replicationRegions(String... replicationRegions) {
return replicationRegions(List.of(replicationRegions));
}
@CustomType.Setter
public Builder runOutputName(String runOutputName) {
if (runOutputName == null) {
throw new MissingRequiredPropertyException("ImageTemplateSharedImageDistributorResponse", "runOutputName");
}
this.runOutputName = runOutputName;
return this;
}
@CustomType.Setter
public Builder storageAccountType(@Nullable String storageAccountType) {
this.storageAccountType = storageAccountType;
return this;
}
@CustomType.Setter
public Builder targetRegions(@Nullable List targetRegions) {
this.targetRegions = targetRegions;
return this;
}
public Builder targetRegions(TargetRegionResponse... targetRegions) {
return targetRegions(List.of(targetRegions));
}
@CustomType.Setter
public Builder type(String type) {
if (type == null) {
throw new MissingRequiredPropertyException("ImageTemplateSharedImageDistributorResponse", "type");
}
this.type = type;
return this;
}
@CustomType.Setter
public Builder versioning(@Nullable Either versioning) {
this.versioning = versioning;
return this;
}
public ImageTemplateSharedImageDistributorResponse build() {
final var _resultValue = new ImageTemplateSharedImageDistributorResponse();
_resultValue.artifactTags = artifactTags;
_resultValue.excludeFromLatest = excludeFromLatest;
_resultValue.galleryImageId = galleryImageId;
_resultValue.replicationRegions = replicationRegions;
_resultValue.runOutputName = runOutputName;
_resultValue.storageAccountType = storageAccountType;
_resultValue.targetRegions = targetRegions;
_resultValue.type = type;
_resultValue.versioning = versioning;
return _resultValue;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy