![JAR search and dependency download from the Maven repository](/logo.png)
com.nutanix.dp1.dat.dataprotection.v4.config.ProtectedResourceRestoreSpec Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dataprotection-java-client Show documentation
Show all versions of dataprotection-java-client Show documentation
Business Continuity with full spectrum of Disaster Recovery and Backup solution. Spanning across Single PC, Cross AZ, MultiSite. Configuration of Recovery points, Protection policies, Recovery Plans. Execution and monitoring of back up and recovery orchestrations on OnPrem as well as Cloud.
/*
* Generated file ..
*
* Product version: 4.0.1-beta-1
*
* Part of the Nutanix Dataprotection Versioned APIs
*
* (c) 2024 Nutanix Inc. All rights reserved
*
*/
package com.nutanix.dp1.dat.dataprotection.v4.config;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.AccessLevel;
import com.nutanix.devplatform.models.PrettyModeViews.*;
import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.stream.Collectors;
import com.nutanix.dp1.dat.deserializers.DatObjectTypeTypedObject;
import javax.validation.constraints.*;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.nutanix.dp1.dat.deserializers.DatDeserializerUtils.*;
/**
* Restore action specifications for a minutely scheduled protected resource.
*/
@Data
@lombok.extern.slf4j.Slf4j
public class ProtectedResourceRestoreSpec implements java.io.Serializable, DatObjectTypeTypedObject {
public ProtectedResourceRestoreSpec() {
this.$objectType = this.initialize$objectType();
this.$reserved = new java.util.LinkedHashMap<>();
this.$reserved.put("$fv", this.initialize$fv());
this.$unknownFields = new java.util.LinkedHashMap<>();
}
@lombok.Builder(builderMethodName = "ProtectedResourceRestoreSpecBuilder")
public ProtectedResourceRestoreSpec(String clusterExtId, java.time.OffsetDateTime restoreTime, Object overrides) {
this.$objectType = this.initialize$objectType();
this.$reserved = new java.util.LinkedHashMap<>();
this.$reserved.put("$fv", this.initialize$fv());
this.$unknownFields = new java.util.LinkedHashMap<>();
this.setClusterExtId(clusterExtId);
this.setRestoreTime(restoreTime);
this.setOverridesInWrapper(overrides);
}
protected String initialize$objectType() {
return "dataprotection.v4.config.ProtectedResourceRestoreSpec";
}
protected String initialize$fv() {
return "v4.r0.b1";
}
@JsonAnySetter
private void setUndeserializedFields(String name, String value) {
$unknownFields.put(name, value);
}
/**
* The external identifier of the cluster on which the entity has valid restorable time ranges. The restored entity will be created on the same cluster.
*/
@javax.validation.constraints.Pattern(regexp="^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$")
@JsonProperty("clusterExtId")
public String clusterExtId = null;
/**
* UTC date and time in ISO 8601 format representing the time from when the state of the entity should be restored. This needs to be a valid time within the restorable time range(s) for the protected resource.
*/
@JsonProperty("restoreTime")
public OffsetDateTime restoreTime = null;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Getter
private String $overridesItemDiscriminator = null;
@Data
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(using = OneOfOverridesWrapper.OneOfOverridesWrapperJsonDeserializer.class)
public static class OneOfOverridesWrapper {
public OneOfOverridesWrapper() {
}
public OneOfOverridesWrapper(com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec data) {
this.oneOfType0 = data;
this.discriminator = data.get$objectType();
this.$objectType = data.get$objectType();
}
public OneOfOverridesWrapper(com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec data) {
this.oneOfType1 = data;
this.discriminator = data.get$objectType();
this.$objectType = data.get$objectType();
}
public OneOfOverridesWrapper(com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec data) {
this.oneOfType2 = data;
this.discriminator = data.get$objectType();
this.$objectType = data.get$objectType();
}
@com.nutanix.dp1.dat.annotations.DatJsonDeserializer
private static class OneOfOverridesWrapperJsonDeserializer extends com.nutanix.dp1.dat.deserializers.DatOneOfDeserializer {
private static final com.fasterxml.jackson.databind.type.TypeFactory TYPE_FACTORY = com.fasterxml.jackson.databind.type.TypeFactory.defaultInstance();
private static final com.fasterxml.jackson.databind.JavaType ONE_OF_TYPE0 = TYPE_FACTORY.constructType(com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec.class);
private static final com.fasterxml.jackson.databind.JavaType ONE_OF_TYPE1 = TYPE_FACTORY.constructType(com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec.class);
private static final com.fasterxml.jackson.databind.JavaType ONE_OF_TYPE2 = TYPE_FACTORY.constructType(com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec.class);
public OneOfOverridesWrapperJsonDeserializer() {
super(TYPE_FACTORY.constructType(OneOfOverridesWrapper.class));
}
@Override
protected void setDataObject(OneOfOverridesWrapper oneOfObject, Object nestedObject) {
if (oneOfObject == null) {
throw new IllegalArgumentException("Instance of OneOfOverridesWrapper provided is null");
}
if(ONE_OF_TYPE0.getRawClass().isAssignableFrom(nestedObject.getClass())) {
oneOfObject.setValue(nestedObject);
if (oneOfObject.getValue() != null) {
return;
}
}
if(ONE_OF_TYPE1.getRawClass().isAssignableFrom(nestedObject.getClass())) {
oneOfObject.setValue(nestedObject);
if (oneOfObject.getValue() != null) {
return;
}
}
if(ONE_OF_TYPE2.getRawClass().isAssignableFrom(nestedObject.getClass())) {
oneOfObject.setValue(nestedObject);
if (oneOfObject.getValue() != null) {
return;
}
}
throw new IllegalArgumentException("Attempting to set unsupported object type in OneOfOverridesWrapper:" + nestedObject.getClass().getName());
}
public String getPackagePrefix() {
return "com.nutanix.dp1.dat";
}
}
@com.fasterxml.jackson.annotation.JsonIgnore
@lombok.Getter(lombok.AccessLevel.NONE)
@lombok.Setter(lombok.AccessLevel.NONE)
private com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec oneOfType0;
@com.fasterxml.jackson.annotation.JsonIgnore
@lombok.Getter(lombok.AccessLevel.NONE)
@lombok.Setter(lombok.AccessLevel.NONE)
private com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec oneOfType1;
@com.fasterxml.jackson.annotation.JsonIgnore
@lombok.Getter(lombok.AccessLevel.NONE)
@lombok.Setter(lombok.AccessLevel.NONE)
private com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec oneOfType2;
@lombok.Setter(lombok.AccessLevel.NONE)
private String discriminator;
@com.fasterxml.jackson.annotation.JsonIgnore
@lombok.Setter(lombok.AccessLevel.NONE)
private String $objectType;
@com.fasterxml.jackson.annotation.JsonGetter
public Object getValue() {
if(oneOfType0 != null && oneOfType0.get$objectType().equals(this.discriminator)) {
return this.oneOfType0;
}
if(oneOfType1 != null && oneOfType1.get$objectType().equals(this.discriminator)) {
return this.oneOfType1;
}
if(oneOfType2 != null && oneOfType2.get$objectType().equals(this.discriminator)) {
return this.oneOfType2;
}
throw new IllegalArgumentException("Unrecognized discriminator:" + this.discriminator);
}
public void setValue(Object value) {
if(value == null) {
log.warn("null passed to setValue function. OneOf's value will not be set.");
return;
}
if (value instanceof com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec) {
this.oneOfType0 = (com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec) value;
this.discriminator = this.oneOfType0.get$objectType();
this.$objectType = this.oneOfType0.get$objectType();
return;
}
if (value instanceof com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec) {
this.oneOfType1 = (com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec) value;
this.discriminator = this.oneOfType1.get$objectType();
this.$objectType = this.oneOfType1.get$objectType();
return;
}
if (value instanceof com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec) {
this.oneOfType2 = (com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec) value;
this.discriminator = this.oneOfType2.get$objectType();
this.$objectType = this.oneOfType2.get$objectType();
return;
}
throw new IllegalArgumentException("Attempting to set unsupported object type in OneOfOverridesWrapper:" + value.getClass().getName());
}
}
private OneOfOverridesWrapper overrides = null;
/**
* @deprecated
* @param value one of wrapper instance
*/
public void setOverrides(OneOfOverridesWrapper value) {
log.warn("Deprecating this method, please use setDataInWrapper instead");
if (value == null) {
return;
}
this.overrides = value;
this.$overridesItemDiscriminator = this.overrides.getDiscriminator();
}
/**
* @param value value of one of field overrides
*/
@com.fasterxml.jackson.annotation.JsonIgnore
public void setOverridesInWrapper(Object value) {
if (value == null) {
return;
}
if (this.overrides == null) {
this.overrides = new OneOfOverridesWrapper();
}
this.overrides.setValue(value);
this.$overridesItemDiscriminator = this.overrides.getDiscriminator();
}
/**
* Get overrides in one of possible types :
*
* - com.nutanix.dp1.dat.dataprotection.v4.config.AhvVmOverrideSpec
* - com.nutanix.dp1.dat.dataprotection.v4.config.EsxiVmOverrideSpec
* - com.nutanix.dp1.dat.dataprotection.v4.config.VolumeGroupOverrideSpec
*
* @return Object
*/
@com.fasterxml.jackson.databind.annotation.JsonSerialize(using = com.nutanix.dp1.dat.serializers.DatOneOfSerializer.class)
public Object getOverrides() {
if (this.overrides == null) {
log.debug("OneOf property overrides was never set. Returning null...");
return null;
}
return this.overrides.getValue();
}
@Getter
@JsonView({StandardView.class})
protected final Map $reserved;
@Getter
@JsonView({StandardView.class})
protected final String $objectType;
@Getter
@JsonView({StandardView.class})
protected final Map $unknownFields;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy