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

com.pulumi.azurenative.compute.outputs.GetSnapshotResult Maven / Gradle / Ivy

There is a newer version: 2.82.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.compute.outputs;

import com.pulumi.azurenative.compute.outputs.CopyCompletionErrorResponse;
import com.pulumi.azurenative.compute.outputs.CreationDataResponse;
import com.pulumi.azurenative.compute.outputs.DiskSecurityProfileResponse;
import com.pulumi.azurenative.compute.outputs.EncryptionResponse;
import com.pulumi.azurenative.compute.outputs.EncryptionSettingsCollectionResponse;
import com.pulumi.azurenative.compute.outputs.ExtendedLocationResponse;
import com.pulumi.azurenative.compute.outputs.PurchasePlanResponse;
import com.pulumi.azurenative.compute.outputs.SnapshotSkuResponse;
import com.pulumi.azurenative.compute.outputs.SupportedCapabilitiesResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetSnapshotResult {
    /**
     * @return Percentage complete for the background copy when a resource is created via the CopyStart operation.
     * 
     */
    private @Nullable Double completionPercent;
    /**
     * @return Indicates the error details if the background copy of a resource created via the CopyStart operation fails.
     * 
     */
    private @Nullable CopyCompletionErrorResponse copyCompletionError;
    /**
     * @return Disk source information. CreationData information cannot be changed after the disk has been created.
     * 
     */
    private CreationDataResponse creationData;
    /**
     * @return Additional authentication requirements when exporting or uploading to a disk or snapshot.
     * 
     */
    private @Nullable String dataAccessAuthMode;
    /**
     * @return ARM id of the DiskAccess resource for using private endpoints on disks.
     * 
     */
    private @Nullable String diskAccessId;
    /**
     * @return The size of the disk in bytes. This field is read only.
     * 
     */
    private Double diskSizeBytes;
    /**
     * @return If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
     * 
     */
    private @Nullable Integer diskSizeGB;
    /**
     * @return The state of the snapshot.
     * 
     */
    private String diskState;
    /**
     * @return Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
     * 
     */
    private @Nullable EncryptionResponse encryption;
    /**
     * @return Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
     * 
     */
    private @Nullable EncryptionSettingsCollectionResponse encryptionSettingsCollection;
    /**
     * @return The extended location where the snapshot will be created. Extended location cannot be changed.
     * 
     */
    private @Nullable ExtendedLocationResponse extendedLocation;
    /**
     * @return The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    private @Nullable String hyperVGeneration;
    /**
     * @return Resource Id
     * 
     */
    private String id;
    /**
     * @return Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed.
     * 
     */
    private @Nullable Boolean incremental;
    /**
     * @return Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id.
     * 
     */
    private String incrementalSnapshotFamilyId;
    /**
     * @return Resource location
     * 
     */
    private String location;
    /**
     * @return Unused. Always Null.
     * 
     */
    private String managedBy;
    /**
     * @return Resource name
     * 
     */
    private String name;
    /**
     * @return Policy for accessing the disk via network.
     * 
     */
    private @Nullable String networkAccessPolicy;
    /**
     * @return The Operating System type.
     * 
     */
    private @Nullable String osType;
    /**
     * @return The disk provisioning state.
     * 
     */
    private String provisioningState;
    /**
     * @return Policy for controlling export on the disk.
     * 
     */
    private @Nullable String publicNetworkAccess;
    /**
     * @return Purchase plan information for the image from which the source disk for the snapshot was originally created.
     * 
     */
    private @Nullable PurchasePlanResponse purchasePlan;
    /**
     * @return Contains the security related information for the resource.
     * 
     */
    private @Nullable DiskSecurityProfileResponse securityProfile;
    /**
     * @return The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot
     * 
     */
    private @Nullable SnapshotSkuResponse sku;
    /**
     * @return List of supported capabilities for the image from which the source disk from the snapshot was originally created.
     * 
     */
    private @Nullable SupportedCapabilitiesResponse supportedCapabilities;
    /**
     * @return Indicates the OS on a snapshot supports hibernation.
     * 
     */
    private @Nullable Boolean supportsHibernation;
    /**
     * @return Resource tags
     * 
     */
    private @Nullable Map tags;
    /**
     * @return The time when the snapshot was created.
     * 
     */
    private String timeCreated;
    /**
     * @return Resource type
     * 
     */
    private String type;
    /**
     * @return Unique Guid identifying the resource.
     * 
     */
    private String uniqueId;

    private GetSnapshotResult() {}
    /**
     * @return Percentage complete for the background copy when a resource is created via the CopyStart operation.
     * 
     */
    public Optional completionPercent() {
        return Optional.ofNullable(this.completionPercent);
    }
    /**
     * @return Indicates the error details if the background copy of a resource created via the CopyStart operation fails.
     * 
     */
    public Optional copyCompletionError() {
        return Optional.ofNullable(this.copyCompletionError);
    }
    /**
     * @return Disk source information. CreationData information cannot be changed after the disk has been created.
     * 
     */
    public CreationDataResponse creationData() {
        return this.creationData;
    }
    /**
     * @return Additional authentication requirements when exporting or uploading to a disk or snapshot.
     * 
     */
    public Optional dataAccessAuthMode() {
        return Optional.ofNullable(this.dataAccessAuthMode);
    }
    /**
     * @return ARM id of the DiskAccess resource for using private endpoints on disks.
     * 
     */
    public Optional diskAccessId() {
        return Optional.ofNullable(this.diskAccessId);
    }
    /**
     * @return The size of the disk in bytes. This field is read only.
     * 
     */
    public Double diskSizeBytes() {
        return this.diskSizeBytes;
    }
    /**
     * @return If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size.
     * 
     */
    public Optional diskSizeGB() {
        return Optional.ofNullable(this.diskSizeGB);
    }
    /**
     * @return The state of the snapshot.
     * 
     */
    public String diskState() {
        return this.diskState;
    }
    /**
     * @return Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys.
     * 
     */
    public Optional encryption() {
        return Optional.ofNullable(this.encryption);
    }
    /**
     * @return Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot.
     * 
     */
    public Optional encryptionSettingsCollection() {
        return Optional.ofNullable(this.encryptionSettingsCollection);
    }
    /**
     * @return The extended location where the snapshot will be created. Extended location cannot be changed.
     * 
     */
    public Optional extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }
    /**
     * @return The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
     * 
     */
    public Optional hyperVGeneration() {
        return Optional.ofNullable(this.hyperVGeneration);
    }
    /**
     * @return Resource Id
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed.
     * 
     */
    public Optional incremental() {
        return Optional.ofNullable(this.incremental);
    }
    /**
     * @return Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id.
     * 
     */
    public String incrementalSnapshotFamilyId() {
        return this.incrementalSnapshotFamilyId;
    }
    /**
     * @return Resource location
     * 
     */
    public String location() {
        return this.location;
    }
    /**
     * @return Unused. Always Null.
     * 
     */
    public String managedBy() {
        return this.managedBy;
    }
    /**
     * @return Resource name
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Policy for accessing the disk via network.
     * 
     */
    public Optional networkAccessPolicy() {
        return Optional.ofNullable(this.networkAccessPolicy);
    }
    /**
     * @return The Operating System type.
     * 
     */
    public Optional osType() {
        return Optional.ofNullable(this.osType);
    }
    /**
     * @return The disk provisioning state.
     * 
     */
    public String provisioningState() {
        return this.provisioningState;
    }
    /**
     * @return Policy for controlling export on the disk.
     * 
     */
    public Optional publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }
    /**
     * @return Purchase plan information for the image from which the source disk for the snapshot was originally created.
     * 
     */
    public Optional purchasePlan() {
        return Optional.ofNullable(this.purchasePlan);
    }
    /**
     * @return Contains the security related information for the resource.
     * 
     */
    public Optional securityProfile() {
        return Optional.ofNullable(this.securityProfile);
    }
    /**
     * @return The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot
     * 
     */
    public Optional sku() {
        return Optional.ofNullable(this.sku);
    }
    /**
     * @return List of supported capabilities for the image from which the source disk from the snapshot was originally created.
     * 
     */
    public Optional supportedCapabilities() {
        return Optional.ofNullable(this.supportedCapabilities);
    }
    /**
     * @return Indicates the OS on a snapshot supports hibernation.
     * 
     */
    public Optional supportsHibernation() {
        return Optional.ofNullable(this.supportsHibernation);
    }
    /**
     * @return Resource tags
     * 
     */
    public Map tags() {
        return this.tags == null ? Map.of() : this.tags;
    }
    /**
     * @return The time when the snapshot was created.
     * 
     */
    public String timeCreated() {
        return this.timeCreated;
    }
    /**
     * @return Resource type
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return Unique Guid identifying the resource.
     * 
     */
    public String uniqueId() {
        return this.uniqueId;
    }

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

    public static Builder builder(GetSnapshotResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Double completionPercent;
        private @Nullable CopyCompletionErrorResponse copyCompletionError;
        private CreationDataResponse creationData;
        private @Nullable String dataAccessAuthMode;
        private @Nullable String diskAccessId;
        private Double diskSizeBytes;
        private @Nullable Integer diskSizeGB;
        private String diskState;
        private @Nullable EncryptionResponse encryption;
        private @Nullable EncryptionSettingsCollectionResponse encryptionSettingsCollection;
        private @Nullable ExtendedLocationResponse extendedLocation;
        private @Nullable String hyperVGeneration;
        private String id;
        private @Nullable Boolean incremental;
        private String incrementalSnapshotFamilyId;
        private String location;
        private String managedBy;
        private String name;
        private @Nullable String networkAccessPolicy;
        private @Nullable String osType;
        private String provisioningState;
        private @Nullable String publicNetworkAccess;
        private @Nullable PurchasePlanResponse purchasePlan;
        private @Nullable DiskSecurityProfileResponse securityProfile;
        private @Nullable SnapshotSkuResponse sku;
        private @Nullable SupportedCapabilitiesResponse supportedCapabilities;
        private @Nullable Boolean supportsHibernation;
        private @Nullable Map tags;
        private String timeCreated;
        private String type;
        private String uniqueId;
        public Builder() {}
        public Builder(GetSnapshotResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.completionPercent = defaults.completionPercent;
    	      this.copyCompletionError = defaults.copyCompletionError;
    	      this.creationData = defaults.creationData;
    	      this.dataAccessAuthMode = defaults.dataAccessAuthMode;
    	      this.diskAccessId = defaults.diskAccessId;
    	      this.diskSizeBytes = defaults.diskSizeBytes;
    	      this.diskSizeGB = defaults.diskSizeGB;
    	      this.diskState = defaults.diskState;
    	      this.encryption = defaults.encryption;
    	      this.encryptionSettingsCollection = defaults.encryptionSettingsCollection;
    	      this.extendedLocation = defaults.extendedLocation;
    	      this.hyperVGeneration = defaults.hyperVGeneration;
    	      this.id = defaults.id;
    	      this.incremental = defaults.incremental;
    	      this.incrementalSnapshotFamilyId = defaults.incrementalSnapshotFamilyId;
    	      this.location = defaults.location;
    	      this.managedBy = defaults.managedBy;
    	      this.name = defaults.name;
    	      this.networkAccessPolicy = defaults.networkAccessPolicy;
    	      this.osType = defaults.osType;
    	      this.provisioningState = defaults.provisioningState;
    	      this.publicNetworkAccess = defaults.publicNetworkAccess;
    	      this.purchasePlan = defaults.purchasePlan;
    	      this.securityProfile = defaults.securityProfile;
    	      this.sku = defaults.sku;
    	      this.supportedCapabilities = defaults.supportedCapabilities;
    	      this.supportsHibernation = defaults.supportsHibernation;
    	      this.tags = defaults.tags;
    	      this.timeCreated = defaults.timeCreated;
    	      this.type = defaults.type;
    	      this.uniqueId = defaults.uniqueId;
        }

        @CustomType.Setter
        public Builder completionPercent(@Nullable Double completionPercent) {

            this.completionPercent = completionPercent;
            return this;
        }
        @CustomType.Setter
        public Builder copyCompletionError(@Nullable CopyCompletionErrorResponse copyCompletionError) {

            this.copyCompletionError = copyCompletionError;
            return this;
        }
        @CustomType.Setter
        public Builder creationData(CreationDataResponse creationData) {
            if (creationData == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "creationData");
            }
            this.creationData = creationData;
            return this;
        }
        @CustomType.Setter
        public Builder dataAccessAuthMode(@Nullable String dataAccessAuthMode) {

            this.dataAccessAuthMode = dataAccessAuthMode;
            return this;
        }
        @CustomType.Setter
        public Builder diskAccessId(@Nullable String diskAccessId) {

            this.diskAccessId = diskAccessId;
            return this;
        }
        @CustomType.Setter
        public Builder diskSizeBytes(Double diskSizeBytes) {
            if (diskSizeBytes == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "diskSizeBytes");
            }
            this.diskSizeBytes = diskSizeBytes;
            return this;
        }
        @CustomType.Setter
        public Builder diskSizeGB(@Nullable Integer diskSizeGB) {

            this.diskSizeGB = diskSizeGB;
            return this;
        }
        @CustomType.Setter
        public Builder diskState(String diskState) {
            if (diskState == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "diskState");
            }
            this.diskState = diskState;
            return this;
        }
        @CustomType.Setter
        public Builder encryption(@Nullable EncryptionResponse encryption) {

            this.encryption = encryption;
            return this;
        }
        @CustomType.Setter
        public Builder encryptionSettingsCollection(@Nullable EncryptionSettingsCollectionResponse encryptionSettingsCollection) {

            this.encryptionSettingsCollection = encryptionSettingsCollection;
            return this;
        }
        @CustomType.Setter
        public Builder extendedLocation(@Nullable ExtendedLocationResponse extendedLocation) {

            this.extendedLocation = extendedLocation;
            return this;
        }
        @CustomType.Setter
        public Builder hyperVGeneration(@Nullable String hyperVGeneration) {

            this.hyperVGeneration = hyperVGeneration;
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            if (id == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "id");
            }
            this.id = id;
            return this;
        }
        @CustomType.Setter
        public Builder incremental(@Nullable Boolean incremental) {

            this.incremental = incremental;
            return this;
        }
        @CustomType.Setter
        public Builder incrementalSnapshotFamilyId(String incrementalSnapshotFamilyId) {
            if (incrementalSnapshotFamilyId == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "incrementalSnapshotFamilyId");
            }
            this.incrementalSnapshotFamilyId = incrementalSnapshotFamilyId;
            return this;
        }
        @CustomType.Setter
        public Builder location(String location) {
            if (location == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "location");
            }
            this.location = location;
            return this;
        }
        @CustomType.Setter
        public Builder managedBy(String managedBy) {
            if (managedBy == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "managedBy");
            }
            this.managedBy = managedBy;
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder networkAccessPolicy(@Nullable String networkAccessPolicy) {

            this.networkAccessPolicy = networkAccessPolicy;
            return this;
        }
        @CustomType.Setter
        public Builder osType(@Nullable String osType) {

            this.osType = osType;
            return this;
        }
        @CustomType.Setter
        public Builder provisioningState(String provisioningState) {
            if (provisioningState == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "provisioningState");
            }
            this.provisioningState = provisioningState;
            return this;
        }
        @CustomType.Setter
        public Builder publicNetworkAccess(@Nullable String publicNetworkAccess) {

            this.publicNetworkAccess = publicNetworkAccess;
            return this;
        }
        @CustomType.Setter
        public Builder purchasePlan(@Nullable PurchasePlanResponse purchasePlan) {

            this.purchasePlan = purchasePlan;
            return this;
        }
        @CustomType.Setter
        public Builder securityProfile(@Nullable DiskSecurityProfileResponse securityProfile) {

            this.securityProfile = securityProfile;
            return this;
        }
        @CustomType.Setter
        public Builder sku(@Nullable SnapshotSkuResponse sku) {

            this.sku = sku;
            return this;
        }
        @CustomType.Setter
        public Builder supportedCapabilities(@Nullable SupportedCapabilitiesResponse supportedCapabilities) {

            this.supportedCapabilities = supportedCapabilities;
            return this;
        }
        @CustomType.Setter
        public Builder supportsHibernation(@Nullable Boolean supportsHibernation) {

            this.supportsHibernation = supportsHibernation;
            return this;
        }
        @CustomType.Setter
        public Builder tags(@Nullable Map tags) {

            this.tags = tags;
            return this;
        }
        @CustomType.Setter
        public Builder timeCreated(String timeCreated) {
            if (timeCreated == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "timeCreated");
            }
            this.timeCreated = timeCreated;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder uniqueId(String uniqueId) {
            if (uniqueId == null) {
              throw new MissingRequiredPropertyException("GetSnapshotResult", "uniqueId");
            }
            this.uniqueId = uniqueId;
            return this;
        }
        public GetSnapshotResult build() {
            final var _resultValue = new GetSnapshotResult();
            _resultValue.completionPercent = completionPercent;
            _resultValue.copyCompletionError = copyCompletionError;
            _resultValue.creationData = creationData;
            _resultValue.dataAccessAuthMode = dataAccessAuthMode;
            _resultValue.diskAccessId = diskAccessId;
            _resultValue.diskSizeBytes = diskSizeBytes;
            _resultValue.diskSizeGB = diskSizeGB;
            _resultValue.diskState = diskState;
            _resultValue.encryption = encryption;
            _resultValue.encryptionSettingsCollection = encryptionSettingsCollection;
            _resultValue.extendedLocation = extendedLocation;
            _resultValue.hyperVGeneration = hyperVGeneration;
            _resultValue.id = id;
            _resultValue.incremental = incremental;
            _resultValue.incrementalSnapshotFamilyId = incrementalSnapshotFamilyId;
            _resultValue.location = location;
            _resultValue.managedBy = managedBy;
            _resultValue.name = name;
            _resultValue.networkAccessPolicy = networkAccessPolicy;
            _resultValue.osType = osType;
            _resultValue.provisioningState = provisioningState;
            _resultValue.publicNetworkAccess = publicNetworkAccess;
            _resultValue.purchasePlan = purchasePlan;
            _resultValue.securityProfile = securityProfile;
            _resultValue.sku = sku;
            _resultValue.supportedCapabilities = supportedCapabilities;
            _resultValue.supportsHibernation = supportsHibernation;
            _resultValue.tags = tags;
            _resultValue.timeCreated = timeCreated;
            _resultValue.type = type;
            _resultValue.uniqueId = uniqueId;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy