diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/pom.xml b/recoveryservicessiterecovery/resource-manager/v2018_01_10/pom.xml
new file mode 100644
index 0000000000000..019bd7e2182c3
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.recoveryservicessiterecovery.v2018_01_10
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-recoveryservices
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for RecoveryServices Management
+ This package contains Microsoft RecoveryServices Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AApplyRecoveryPointInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AApplyRecoveryPointInput.java
new file mode 100644
index 0000000000000..cb98f63ccfccd
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AApplyRecoveryPointInput.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * ApplyRecoveryPoint input specific to A2A provider.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AApplyRecoveryPointInput extends ApplyRecoveryPointProviderSpecificInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AContainerCreationInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AContainerCreationInput.java
new file mode 100644
index 0000000000000..9a333dad11cec
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AContainerCreationInput.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A cloud creation input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AContainerCreationInput extends ReplicationProviderSpecificContainerCreationInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEnableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEnableProtectionInput.java
new file mode 100644
index 0000000000000..5dda7edee3bc9
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEnableProtectionInput.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A enable protection input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AEnableProtectionInput extends EnableProtectionProviderSpecificInput {
+ /**
+ * The fabric specific object Id of the virtual machine.
+ */
+ @JsonProperty(value = "fabricObjectId")
+ private String fabricObjectId;
+
+ /**
+ * The recovery container Id.
+ */
+ @JsonProperty(value = "recoveryContainerId")
+ private String recoveryContainerId;
+
+ /**
+ * The recovery resource group Id. Valid for V2 scenarios.
+ */
+ @JsonProperty(value = "recoveryResourceGroupId")
+ private String recoveryResourceGroupId;
+
+ /**
+ * The recovery cloud service Id. Valid for V1 scenarios.
+ */
+ @JsonProperty(value = "recoveryCloudServiceId")
+ private String recoveryCloudServiceId;
+
+ /**
+ * The recovery availability set Id.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySetId")
+ private String recoveryAvailabilitySetId;
+
+ /**
+ * The list of vm disk details.
+ */
+ @JsonProperty(value = "vmDisks")
+ private List vmDisks;
+
+ /**
+ * The list of vm managed disk details.
+ */
+ @JsonProperty(value = "vmManagedDisks")
+ private List vmManagedDisks;
+
+ /**
+ * Get the fabric specific object Id of the virtual machine.
+ *
+ * @return the fabricObjectId value
+ */
+ public String fabricObjectId() {
+ return this.fabricObjectId;
+ }
+
+ /**
+ * Set the fabric specific object Id of the virtual machine.
+ *
+ * @param fabricObjectId the fabricObjectId value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withFabricObjectId(String fabricObjectId) {
+ this.fabricObjectId = fabricObjectId;
+ return this;
+ }
+
+ /**
+ * Get the recovery container Id.
+ *
+ * @return the recoveryContainerId value
+ */
+ public String recoveryContainerId() {
+ return this.recoveryContainerId;
+ }
+
+ /**
+ * Set the recovery container Id.
+ *
+ * @param recoveryContainerId the recoveryContainerId value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withRecoveryContainerId(String recoveryContainerId) {
+ this.recoveryContainerId = recoveryContainerId;
+ return this;
+ }
+
+ /**
+ * Get the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @return the recoveryResourceGroupId value
+ */
+ public String recoveryResourceGroupId() {
+ return this.recoveryResourceGroupId;
+ }
+
+ /**
+ * Set the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @param recoveryResourceGroupId the recoveryResourceGroupId value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withRecoveryResourceGroupId(String recoveryResourceGroupId) {
+ this.recoveryResourceGroupId = recoveryResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @return the recoveryCloudServiceId value
+ */
+ public String recoveryCloudServiceId() {
+ return this.recoveryCloudServiceId;
+ }
+
+ /**
+ * Set the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @param recoveryCloudServiceId the recoveryCloudServiceId value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withRecoveryCloudServiceId(String recoveryCloudServiceId) {
+ this.recoveryCloudServiceId = recoveryCloudServiceId;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set Id.
+ *
+ * @return the recoveryAvailabilitySetId value
+ */
+ public String recoveryAvailabilitySetId() {
+ return this.recoveryAvailabilitySetId;
+ }
+
+ /**
+ * Set the recovery availability set Id.
+ *
+ * @param recoveryAvailabilitySetId the recoveryAvailabilitySetId value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withRecoveryAvailabilitySetId(String recoveryAvailabilitySetId) {
+ this.recoveryAvailabilitySetId = recoveryAvailabilitySetId;
+ return this;
+ }
+
+ /**
+ * Get the list of vm disk details.
+ *
+ * @return the vmDisks value
+ */
+ public List vmDisks() {
+ return this.vmDisks;
+ }
+
+ /**
+ * Set the list of vm disk details.
+ *
+ * @param vmDisks the vmDisks value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withVmDisks(List vmDisks) {
+ this.vmDisks = vmDisks;
+ return this;
+ }
+
+ /**
+ * Get the list of vm managed disk details.
+ *
+ * @return the vmManagedDisks value
+ */
+ public List vmManagedDisks() {
+ return this.vmManagedDisks;
+ }
+
+ /**
+ * Set the list of vm managed disk details.
+ *
+ * @param vmManagedDisks the vmManagedDisks value to set
+ * @return the A2AEnableProtectionInput object itself.
+ */
+ public A2AEnableProtectionInput withVmManagedDisks(List vmManagedDisks) {
+ this.vmManagedDisks = vmManagedDisks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEventDetails.java
new file mode 100644
index 0000000000000..c72ed0f9d8fdf
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AEventDetails.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a A2A event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AEventDetails extends EventProviderSpecificDetails {
+ /**
+ * The protected item arm name.
+ */
+ @JsonProperty(value = "protectedItemName")
+ private String protectedItemName;
+
+ /**
+ * The azure vm arm id.
+ */
+ @JsonProperty(value = "fabricObjectId")
+ private String fabricObjectId;
+
+ /**
+ * Fabric arm name.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * The fabric location.
+ */
+ @JsonProperty(value = "fabricLocation")
+ private String fabricLocation;
+
+ /**
+ * Remote fabric arm name.
+ */
+ @JsonProperty(value = "remoteFabricName")
+ private String remoteFabricName;
+
+ /**
+ * Remote fabric location.
+ */
+ @JsonProperty(value = "remoteFabricLocation")
+ private String remoteFabricLocation;
+
+ /**
+ * Get the protected item arm name.
+ *
+ * @return the protectedItemName value
+ */
+ public String protectedItemName() {
+ return this.protectedItemName;
+ }
+
+ /**
+ * Set the protected item arm name.
+ *
+ * @param protectedItemName the protectedItemName value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withProtectedItemName(String protectedItemName) {
+ this.protectedItemName = protectedItemName;
+ return this;
+ }
+
+ /**
+ * Get the azure vm arm id.
+ *
+ * @return the fabricObjectId value
+ */
+ public String fabricObjectId() {
+ return this.fabricObjectId;
+ }
+
+ /**
+ * Set the azure vm arm id.
+ *
+ * @param fabricObjectId the fabricObjectId value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withFabricObjectId(String fabricObjectId) {
+ this.fabricObjectId = fabricObjectId;
+ return this;
+ }
+
+ /**
+ * Get fabric arm name.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set fabric arm name.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the fabric location.
+ *
+ * @return the fabricLocation value
+ */
+ public String fabricLocation() {
+ return this.fabricLocation;
+ }
+
+ /**
+ * Set the fabric location.
+ *
+ * @param fabricLocation the fabricLocation value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withFabricLocation(String fabricLocation) {
+ this.fabricLocation = fabricLocation;
+ return this;
+ }
+
+ /**
+ * Get remote fabric arm name.
+ *
+ * @return the remoteFabricName value
+ */
+ public String remoteFabricName() {
+ return this.remoteFabricName;
+ }
+
+ /**
+ * Set remote fabric arm name.
+ *
+ * @param remoteFabricName the remoteFabricName value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withRemoteFabricName(String remoteFabricName) {
+ this.remoteFabricName = remoteFabricName;
+ return this;
+ }
+
+ /**
+ * Get remote fabric location.
+ *
+ * @return the remoteFabricLocation value
+ */
+ public String remoteFabricLocation() {
+ return this.remoteFabricLocation;
+ }
+
+ /**
+ * Set remote fabric location.
+ *
+ * @param remoteFabricLocation the remoteFabricLocation value to set
+ * @return the A2AEventDetails object itself.
+ */
+ public A2AEventDetails withRemoteFabricLocation(String remoteFabricLocation) {
+ this.remoteFabricLocation = remoteFabricLocation;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AFailoverProviderInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AFailoverProviderInput.java
new file mode 100644
index 0000000000000..aa2c4bd05de29
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AFailoverProviderInput.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A provider specific input for failover.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AFailoverProviderInput extends ProviderSpecificFailoverInput {
+ /**
+ * The recovery point id to be passed to failover to a particular recovery
+ * point. In case of latest recovery point, null should be passed.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * A value indicating whether to use recovery cloud service for TFO or not.
+ */
+ @JsonProperty(value = "cloudServiceCreationOption")
+ private String cloudServiceCreationOption;
+
+ /**
+ * Get the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the A2AFailoverProviderInput object itself.
+ */
+ public A2AFailoverProviderInput withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether to use recovery cloud service for TFO or not.
+ *
+ * @return the cloudServiceCreationOption value
+ */
+ public String cloudServiceCreationOption() {
+ return this.cloudServiceCreationOption;
+ }
+
+ /**
+ * Set a value indicating whether to use recovery cloud service for TFO or not.
+ *
+ * @param cloudServiceCreationOption the cloudServiceCreationOption value to set
+ * @return the A2AFailoverProviderInput object itself.
+ */
+ public A2AFailoverProviderInput withCloudServiceCreationOption(String cloudServiceCreationOption) {
+ this.cloudServiceCreationOption = cloudServiceCreationOption;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyCreationInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyCreationInput.java
new file mode 100644
index 0000000000000..a78d0a5ba3fc3
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyCreationInput.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A Policy creation input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2APolicyCreationInput extends PolicyProviderSpecificInput {
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The crash consistent snapshot frequency (in minutes).
+ */
+ @JsonProperty(value = "crashConsistentFrequencyInMinutes")
+ private Integer crashConsistentFrequencyInMinutes;
+
+ /**
+ * The app consistent snapshot frequency (in minutes).
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled. Value should
+ * be 'Enabled' or 'Disabled'. Possible values include: 'Enable',
+ * 'Disable'.
+ */
+ @JsonProperty(value = "multiVmSyncStatus", required = true)
+ private SetMultiVmSyncStatus multiVmSyncStatus;
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the A2APolicyCreationInput object itself.
+ */
+ public A2APolicyCreationInput withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the crash consistent snapshot frequency (in minutes).
+ *
+ * @return the crashConsistentFrequencyInMinutes value
+ */
+ public Integer crashConsistentFrequencyInMinutes() {
+ return this.crashConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the crash consistent snapshot frequency (in minutes).
+ *
+ * @param crashConsistentFrequencyInMinutes the crashConsistentFrequencyInMinutes value to set
+ * @return the A2APolicyCreationInput object itself.
+ */
+ public A2APolicyCreationInput withCrashConsistentFrequencyInMinutes(Integer crashConsistentFrequencyInMinutes) {
+ this.crashConsistentFrequencyInMinutes = crashConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency (in minutes).
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency (in minutes).
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the A2APolicyCreationInput object itself.
+ */
+ public A2APolicyCreationInput withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public SetMultiVmSyncStatus multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the A2APolicyCreationInput object itself.
+ */
+ public A2APolicyCreationInput withMultiVmSyncStatus(SetMultiVmSyncStatus multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyDetails.java
new file mode 100644
index 0000000000000..830abdc15f145
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2APolicyDetails.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A specific policy details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2APolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The app consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * The crash consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "crashConsistentFrequencyInMinutes")
+ private Integer crashConsistentFrequencyInMinutes;
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the A2APolicyDetails object itself.
+ */
+ public A2APolicyDetails withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the A2APolicyDetails object itself.
+ */
+ public A2APolicyDetails withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency in minutes.
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency in minutes.
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the A2APolicyDetails object itself.
+ */
+ public A2APolicyDetails withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the A2APolicyDetails object itself.
+ */
+ public A2APolicyDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+ /**
+ * Get the crash consistent snapshot frequency in minutes.
+ *
+ * @return the crashConsistentFrequencyInMinutes value
+ */
+ public Integer crashConsistentFrequencyInMinutes() {
+ return this.crashConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the crash consistent snapshot frequency in minutes.
+ *
+ * @param crashConsistentFrequencyInMinutes the crashConsistentFrequencyInMinutes value to set
+ * @return the A2APolicyDetails object itself.
+ */
+ public A2APolicyDetails withCrashConsistentFrequencyInMinutes(Integer crashConsistentFrequencyInMinutes) {
+ this.crashConsistentFrequencyInMinutes = crashConsistentFrequencyInMinutes;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedDiskDetails.java
new file mode 100644
index 0000000000000..60b1de41a26ee
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedDiskDetails.java
@@ -0,0 +1,357 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A2A protected disk details.
+ */
+public class A2AProtectedDiskDetails {
+ /**
+ * The disk uri.
+ */
+ @JsonProperty(value = "diskUri")
+ private String diskUri;
+
+ /**
+ * The recovery disk storage account.
+ */
+ @JsonProperty(value = "recoveryAzureStorageAccountId")
+ private String recoveryAzureStorageAccountId;
+
+ /**
+ * The primary disk storage account.
+ */
+ @JsonProperty(value = "primaryDiskAzureStorageAccountId")
+ private String primaryDiskAzureStorageAccountId;
+
+ /**
+ * Recovery disk uri.
+ */
+ @JsonProperty(value = "recoveryDiskUri")
+ private String recoveryDiskUri;
+
+ /**
+ * The disk name.
+ */
+ @JsonProperty(value = "diskName")
+ private String diskName;
+
+ /**
+ * The disk capacity in bytes.
+ */
+ @JsonProperty(value = "diskCapacityInBytes")
+ private Long diskCapacityInBytes;
+
+ /**
+ * The primary staging storage account.
+ */
+ @JsonProperty(value = "primaryStagingAzureStorageAccountId")
+ private String primaryStagingAzureStorageAccountId;
+
+ /**
+ * The type of disk.
+ */
+ @JsonProperty(value = "diskType")
+ private String diskType;
+
+ /**
+ * A value indicating whether resync is required for this disk.
+ */
+ @JsonProperty(value = "resyncRequired")
+ private Boolean resyncRequired;
+
+ /**
+ * The percentage of the monitoring job. The type of the monitoring job is
+ * defined by MonitoringJobType property.
+ */
+ @JsonProperty(value = "monitoringPercentageCompletion")
+ private Integer monitoringPercentageCompletion;
+
+ /**
+ * The type of the monitoring job. The progress is contained in
+ * MonitoringPercentageCompletion property.
+ */
+ @JsonProperty(value = "monitoringJobType")
+ private String monitoringJobType;
+
+ /**
+ * The data pending for replication in MB at staging account.
+ */
+ @JsonProperty(value = "dataPendingInStagingStorageAccountInMB")
+ private Double dataPendingInStagingStorageAccountInMB;
+
+ /**
+ * The data pending at source virtual machine in MB.
+ */
+ @JsonProperty(value = "dataPendingAtSourceAgentInMB")
+ private Double dataPendingAtSourceAgentInMB;
+
+ /**
+ * Get the disk uri.
+ *
+ * @return the diskUri value
+ */
+ public String diskUri() {
+ return this.diskUri;
+ }
+
+ /**
+ * Set the disk uri.
+ *
+ * @param diskUri the diskUri value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDiskUri(String diskUri) {
+ this.diskUri = diskUri;
+ return this;
+ }
+
+ /**
+ * Get the recovery disk storage account.
+ *
+ * @return the recoveryAzureStorageAccountId value
+ */
+ public String recoveryAzureStorageAccountId() {
+ return this.recoveryAzureStorageAccountId;
+ }
+
+ /**
+ * Set the recovery disk storage account.
+ *
+ * @param recoveryAzureStorageAccountId the recoveryAzureStorageAccountId value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withRecoveryAzureStorageAccountId(String recoveryAzureStorageAccountId) {
+ this.recoveryAzureStorageAccountId = recoveryAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the primary disk storage account.
+ *
+ * @return the primaryDiskAzureStorageAccountId value
+ */
+ public String primaryDiskAzureStorageAccountId() {
+ return this.primaryDiskAzureStorageAccountId;
+ }
+
+ /**
+ * Set the primary disk storage account.
+ *
+ * @param primaryDiskAzureStorageAccountId the primaryDiskAzureStorageAccountId value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withPrimaryDiskAzureStorageAccountId(String primaryDiskAzureStorageAccountId) {
+ this.primaryDiskAzureStorageAccountId = primaryDiskAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get recovery disk uri.
+ *
+ * @return the recoveryDiskUri value
+ */
+ public String recoveryDiskUri() {
+ return this.recoveryDiskUri;
+ }
+
+ /**
+ * Set recovery disk uri.
+ *
+ * @param recoveryDiskUri the recoveryDiskUri value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withRecoveryDiskUri(String recoveryDiskUri) {
+ this.recoveryDiskUri = recoveryDiskUri;
+ return this;
+ }
+
+ /**
+ * Get the disk name.
+ *
+ * @return the diskName value
+ */
+ public String diskName() {
+ return this.diskName;
+ }
+
+ /**
+ * Set the disk name.
+ *
+ * @param diskName the diskName value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDiskName(String diskName) {
+ this.diskName = diskName;
+ return this;
+ }
+
+ /**
+ * Get the disk capacity in bytes.
+ *
+ * @return the diskCapacityInBytes value
+ */
+ public Long diskCapacityInBytes() {
+ return this.diskCapacityInBytes;
+ }
+
+ /**
+ * Set the disk capacity in bytes.
+ *
+ * @param diskCapacityInBytes the diskCapacityInBytes value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDiskCapacityInBytes(Long diskCapacityInBytes) {
+ this.diskCapacityInBytes = diskCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the primary staging storage account.
+ *
+ * @return the primaryStagingAzureStorageAccountId value
+ */
+ public String primaryStagingAzureStorageAccountId() {
+ return this.primaryStagingAzureStorageAccountId;
+ }
+
+ /**
+ * Set the primary staging storage account.
+ *
+ * @param primaryStagingAzureStorageAccountId the primaryStagingAzureStorageAccountId value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withPrimaryStagingAzureStorageAccountId(String primaryStagingAzureStorageAccountId) {
+ this.primaryStagingAzureStorageAccountId = primaryStagingAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the type of disk.
+ *
+ * @return the diskType value
+ */
+ public String diskType() {
+ return this.diskType;
+ }
+
+ /**
+ * Set the type of disk.
+ *
+ * @param diskType the diskType value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDiskType(String diskType) {
+ this.diskType = diskType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether resync is required for this disk.
+ *
+ * @return the resyncRequired value
+ */
+ public Boolean resyncRequired() {
+ return this.resyncRequired;
+ }
+
+ /**
+ * Set a value indicating whether resync is required for this disk.
+ *
+ * @param resyncRequired the resyncRequired value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withResyncRequired(Boolean resyncRequired) {
+ this.resyncRequired = resyncRequired;
+ return this;
+ }
+
+ /**
+ * Get the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @return the monitoringPercentageCompletion value
+ */
+ public Integer monitoringPercentageCompletion() {
+ return this.monitoringPercentageCompletion;
+ }
+
+ /**
+ * Set the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @param monitoringPercentageCompletion the monitoringPercentageCompletion value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withMonitoringPercentageCompletion(Integer monitoringPercentageCompletion) {
+ this.monitoringPercentageCompletion = monitoringPercentageCompletion;
+ return this;
+ }
+
+ /**
+ * Get the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @return the monitoringJobType value
+ */
+ public String monitoringJobType() {
+ return this.monitoringJobType;
+ }
+
+ /**
+ * Set the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @param monitoringJobType the monitoringJobType value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withMonitoringJobType(String monitoringJobType) {
+ this.monitoringJobType = monitoringJobType;
+ return this;
+ }
+
+ /**
+ * Get the data pending for replication in MB at staging account.
+ *
+ * @return the dataPendingInStagingStorageAccountInMB value
+ */
+ public Double dataPendingInStagingStorageAccountInMB() {
+ return this.dataPendingInStagingStorageAccountInMB;
+ }
+
+ /**
+ * Set the data pending for replication in MB at staging account.
+ *
+ * @param dataPendingInStagingStorageAccountInMB the dataPendingInStagingStorageAccountInMB value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDataPendingInStagingStorageAccountInMB(Double dataPendingInStagingStorageAccountInMB) {
+ this.dataPendingInStagingStorageAccountInMB = dataPendingInStagingStorageAccountInMB;
+ return this;
+ }
+
+ /**
+ * Get the data pending at source virtual machine in MB.
+ *
+ * @return the dataPendingAtSourceAgentInMB value
+ */
+ public Double dataPendingAtSourceAgentInMB() {
+ return this.dataPendingAtSourceAgentInMB;
+ }
+
+ /**
+ * Set the data pending at source virtual machine in MB.
+ *
+ * @param dataPendingAtSourceAgentInMB the dataPendingAtSourceAgentInMB value to set
+ * @return the A2AProtectedDiskDetails object itself.
+ */
+ public A2AProtectedDiskDetails withDataPendingAtSourceAgentInMB(Double dataPendingAtSourceAgentInMB) {
+ this.dataPendingAtSourceAgentInMB = dataPendingAtSourceAgentInMB;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedManagedDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedManagedDiskDetails.java
new file mode 100644
index 0000000000000..1dbfab4c9ee24
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AProtectedManagedDiskDetails.java
@@ -0,0 +1,331 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A2A protected managed disk details.
+ */
+public class A2AProtectedManagedDiskDetails {
+ /**
+ * The managed disk Arm id.
+ */
+ @JsonProperty(value = "diskId")
+ private String diskId;
+
+ /**
+ * The recovery disk resource group Arm Id.
+ */
+ @JsonProperty(value = "recoveryAzureResourceGroupId")
+ private String recoveryAzureResourceGroupId;
+
+ /**
+ * Recovery disk Arm Id.
+ */
+ @JsonProperty(value = "recoveryDiskId")
+ private String recoveryDiskId;
+
+ /**
+ * The disk name.
+ */
+ @JsonProperty(value = "diskName")
+ private String diskName;
+
+ /**
+ * The disk capacity in bytes.
+ */
+ @JsonProperty(value = "diskCapacityInBytes")
+ private Long diskCapacityInBytes;
+
+ /**
+ * The primary staging storage account.
+ */
+ @JsonProperty(value = "primaryStagingAzureStorageAccountId")
+ private String primaryStagingAzureStorageAccountId;
+
+ /**
+ * The type of disk.
+ */
+ @JsonProperty(value = "diskType")
+ private String diskType;
+
+ /**
+ * A value indicating whether resync is required for this disk.
+ */
+ @JsonProperty(value = "resyncRequired")
+ private Boolean resyncRequired;
+
+ /**
+ * The percentage of the monitoring job. The type of the monitoring job is
+ * defined by MonitoringJobType property.
+ */
+ @JsonProperty(value = "monitoringPercentageCompletion")
+ private Integer monitoringPercentageCompletion;
+
+ /**
+ * The type of the monitoring job. The progress is contained in
+ * MonitoringPercentageCompletion property.
+ */
+ @JsonProperty(value = "monitoringJobType")
+ private String monitoringJobType;
+
+ /**
+ * The data pending for replication in MB at staging account.
+ */
+ @JsonProperty(value = "dataPendingInStagingStorageAccountInMB")
+ private Double dataPendingInStagingStorageAccountInMB;
+
+ /**
+ * The data pending at source virtual machine in MB.
+ */
+ @JsonProperty(value = "dataPendingAtSourceAgentInMB")
+ private Double dataPendingAtSourceAgentInMB;
+
+ /**
+ * Get the managed disk Arm id.
+ *
+ * @return the diskId value
+ */
+ public String diskId() {
+ return this.diskId;
+ }
+
+ /**
+ * Set the managed disk Arm id.
+ *
+ * @param diskId the diskId value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDiskId(String diskId) {
+ this.diskId = diskId;
+ return this;
+ }
+
+ /**
+ * Get the recovery disk resource group Arm Id.
+ *
+ * @return the recoveryAzureResourceGroupId value
+ */
+ public String recoveryAzureResourceGroupId() {
+ return this.recoveryAzureResourceGroupId;
+ }
+
+ /**
+ * Set the recovery disk resource group Arm Id.
+ *
+ * @param recoveryAzureResourceGroupId the recoveryAzureResourceGroupId value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withRecoveryAzureResourceGroupId(String recoveryAzureResourceGroupId) {
+ this.recoveryAzureResourceGroupId = recoveryAzureResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get recovery disk Arm Id.
+ *
+ * @return the recoveryDiskId value
+ */
+ public String recoveryDiskId() {
+ return this.recoveryDiskId;
+ }
+
+ /**
+ * Set recovery disk Arm Id.
+ *
+ * @param recoveryDiskId the recoveryDiskId value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withRecoveryDiskId(String recoveryDiskId) {
+ this.recoveryDiskId = recoveryDiskId;
+ return this;
+ }
+
+ /**
+ * Get the disk name.
+ *
+ * @return the diskName value
+ */
+ public String diskName() {
+ return this.diskName;
+ }
+
+ /**
+ * Set the disk name.
+ *
+ * @param diskName the diskName value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDiskName(String diskName) {
+ this.diskName = diskName;
+ return this;
+ }
+
+ /**
+ * Get the disk capacity in bytes.
+ *
+ * @return the diskCapacityInBytes value
+ */
+ public Long diskCapacityInBytes() {
+ return this.diskCapacityInBytes;
+ }
+
+ /**
+ * Set the disk capacity in bytes.
+ *
+ * @param diskCapacityInBytes the diskCapacityInBytes value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDiskCapacityInBytes(Long diskCapacityInBytes) {
+ this.diskCapacityInBytes = diskCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the primary staging storage account.
+ *
+ * @return the primaryStagingAzureStorageAccountId value
+ */
+ public String primaryStagingAzureStorageAccountId() {
+ return this.primaryStagingAzureStorageAccountId;
+ }
+
+ /**
+ * Set the primary staging storage account.
+ *
+ * @param primaryStagingAzureStorageAccountId the primaryStagingAzureStorageAccountId value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withPrimaryStagingAzureStorageAccountId(String primaryStagingAzureStorageAccountId) {
+ this.primaryStagingAzureStorageAccountId = primaryStagingAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the type of disk.
+ *
+ * @return the diskType value
+ */
+ public String diskType() {
+ return this.diskType;
+ }
+
+ /**
+ * Set the type of disk.
+ *
+ * @param diskType the diskType value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDiskType(String diskType) {
+ this.diskType = diskType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether resync is required for this disk.
+ *
+ * @return the resyncRequired value
+ */
+ public Boolean resyncRequired() {
+ return this.resyncRequired;
+ }
+
+ /**
+ * Set a value indicating whether resync is required for this disk.
+ *
+ * @param resyncRequired the resyncRequired value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withResyncRequired(Boolean resyncRequired) {
+ this.resyncRequired = resyncRequired;
+ return this;
+ }
+
+ /**
+ * Get the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @return the monitoringPercentageCompletion value
+ */
+ public Integer monitoringPercentageCompletion() {
+ return this.monitoringPercentageCompletion;
+ }
+
+ /**
+ * Set the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @param monitoringPercentageCompletion the monitoringPercentageCompletion value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withMonitoringPercentageCompletion(Integer monitoringPercentageCompletion) {
+ this.monitoringPercentageCompletion = monitoringPercentageCompletion;
+ return this;
+ }
+
+ /**
+ * Get the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @return the monitoringJobType value
+ */
+ public String monitoringJobType() {
+ return this.monitoringJobType;
+ }
+
+ /**
+ * Set the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @param monitoringJobType the monitoringJobType value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withMonitoringJobType(String monitoringJobType) {
+ this.monitoringJobType = monitoringJobType;
+ return this;
+ }
+
+ /**
+ * Get the data pending for replication in MB at staging account.
+ *
+ * @return the dataPendingInStagingStorageAccountInMB value
+ */
+ public Double dataPendingInStagingStorageAccountInMB() {
+ return this.dataPendingInStagingStorageAccountInMB;
+ }
+
+ /**
+ * Set the data pending for replication in MB at staging account.
+ *
+ * @param dataPendingInStagingStorageAccountInMB the dataPendingInStagingStorageAccountInMB value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDataPendingInStagingStorageAccountInMB(Double dataPendingInStagingStorageAccountInMB) {
+ this.dataPendingInStagingStorageAccountInMB = dataPendingInStagingStorageAccountInMB;
+ return this;
+ }
+
+ /**
+ * Get the data pending at source virtual machine in MB.
+ *
+ * @return the dataPendingAtSourceAgentInMB value
+ */
+ public Double dataPendingAtSourceAgentInMB() {
+ return this.dataPendingAtSourceAgentInMB;
+ }
+
+ /**
+ * Set the data pending at source virtual machine in MB.
+ *
+ * @param dataPendingAtSourceAgentInMB the dataPendingAtSourceAgentInMB value to set
+ * @return the A2AProtectedManagedDiskDetails object itself.
+ */
+ public A2AProtectedManagedDiskDetails withDataPendingAtSourceAgentInMB(Double dataPendingAtSourceAgentInMB) {
+ this.dataPendingAtSourceAgentInMB = dataPendingAtSourceAgentInMB;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReplicationDetails.java
new file mode 100644
index 0000000000000..df6f1ebe2e604
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReplicationDetails.java
@@ -0,0 +1,784 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The fabric specific object Id of the virtual machine.
+ */
+ @JsonProperty(value = "fabricObjectId")
+ private String fabricObjectId;
+
+ /**
+ * The multi vm group Id.
+ */
+ @JsonProperty(value = "multiVmGroupId")
+ private String multiVmGroupId;
+
+ /**
+ * The multi vm group name.
+ */
+ @JsonProperty(value = "multiVmGroupName")
+ private String multiVmGroupName;
+
+ /**
+ * The management Id.
+ */
+ @JsonProperty(value = "managementId")
+ private String managementId;
+
+ /**
+ * The list of protected disks.
+ */
+ @JsonProperty(value = "protectedDisks")
+ private List protectedDisks;
+
+ /**
+ * The list of protected managed disks.
+ */
+ @JsonProperty(value = "protectedManagedDisks")
+ private List protectedManagedDisks;
+
+ /**
+ * Primary fabric location.
+ */
+ @JsonProperty(value = "primaryFabricLocation")
+ private String primaryFabricLocation;
+
+ /**
+ * The recovery fabric location.
+ */
+ @JsonProperty(value = "recoveryFabricLocation")
+ private String recoveryFabricLocation;
+
+ /**
+ * The type of operating system.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The size of recovery virtual machine.
+ */
+ @JsonProperty(value = "recoveryAzureVMSize")
+ private String recoveryAzureVMSize;
+
+ /**
+ * The name of recovery virtual machine.
+ */
+ @JsonProperty(value = "recoveryAzureVMName")
+ private String recoveryAzureVMName;
+
+ /**
+ * The recovery resource group.
+ */
+ @JsonProperty(value = "recoveryAzureResourceGroupId")
+ private String recoveryAzureResourceGroupId;
+
+ /**
+ * The recovery cloud service.
+ */
+ @JsonProperty(value = "recoveryCloudService")
+ private String recoveryCloudService;
+
+ /**
+ * The recovery availability set.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySet")
+ private String recoveryAvailabilitySet;
+
+ /**
+ * The recovery virtual network.
+ */
+ @JsonProperty(value = "selectedRecoveryAzureNetworkId")
+ private String selectedRecoveryAzureNetworkId;
+
+ /**
+ * The virtual machine nic details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The synced configuration details.
+ */
+ @JsonProperty(value = "vmSyncedConfigDetails")
+ private AzureToAzureVmSyncedConfigDetails vmSyncedConfigDetails;
+
+ /**
+ * The percentage of the monitoring job. The type of the monitoring job is
+ * defined by MonitoringJobType property.
+ */
+ @JsonProperty(value = "monitoringPercentageCompletion")
+ private Integer monitoringPercentageCompletion;
+
+ /**
+ * The type of the monitoring job. The progress is contained in
+ * MonitoringPercentageCompletion property.
+ */
+ @JsonProperty(value = "monitoringJobType")
+ private String monitoringJobType;
+
+ /**
+ * The last heartbeat received from the source server.
+ */
+ @JsonProperty(value = "lastHeartbeat")
+ private DateTime lastHeartbeat;
+
+ /**
+ * The agent version.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * A value indicating whether replication agent update is required.
+ */
+ @JsonProperty(value = "isReplicationAgentUpdateRequired")
+ private Boolean isReplicationAgentUpdateRequired;
+
+ /**
+ * The recovery fabric object Id.
+ */
+ @JsonProperty(value = "recoveryFabricObjectId")
+ private String recoveryFabricObjectId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * An id associated with the PE that survives actions like switch
+ * protection which change the backing PE/CPE objects internally.The
+ * lifecycle id gets carried forward to have a link/continuity in being
+ * able to have an Id that denotes the "same" protected item even though
+ * other internal Ids/ARM Id might be changing.
+ */
+ @JsonProperty(value = "lifecycleId")
+ private String lifecycleId;
+
+ /**
+ * The test failover fabric object Id.
+ */
+ @JsonProperty(value = "testFailoverRecoveryFabricObjectId")
+ private String testFailoverRecoveryFabricObjectId;
+
+ /**
+ * The last RPO value in seconds.
+ */
+ @JsonProperty(value = "rpoInSeconds")
+ private Long rpoInSeconds;
+
+ /**
+ * The time (in UTC) when the last RPO value was calculated by Protection
+ * Service.
+ */
+ @JsonProperty(value = "lastRpoCalculatedTime")
+ private DateTime lastRpoCalculatedTime;
+
+ /**
+ * Get the fabric specific object Id of the virtual machine.
+ *
+ * @return the fabricObjectId value
+ */
+ public String fabricObjectId() {
+ return this.fabricObjectId;
+ }
+
+ /**
+ * Set the fabric specific object Id of the virtual machine.
+ *
+ * @param fabricObjectId the fabricObjectId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withFabricObjectId(String fabricObjectId) {
+ this.fabricObjectId = fabricObjectId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group Id.
+ *
+ * @return the multiVmGroupId value
+ */
+ public String multiVmGroupId() {
+ return this.multiVmGroupId;
+ }
+
+ /**
+ * Set the multi vm group Id.
+ *
+ * @param multiVmGroupId the multiVmGroupId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withMultiVmGroupId(String multiVmGroupId) {
+ this.multiVmGroupId = multiVmGroupId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group name.
+ *
+ * @return the multiVmGroupName value
+ */
+ public String multiVmGroupName() {
+ return this.multiVmGroupName;
+ }
+
+ /**
+ * Set the multi vm group name.
+ *
+ * @param multiVmGroupName the multiVmGroupName value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withMultiVmGroupName(String multiVmGroupName) {
+ this.multiVmGroupName = multiVmGroupName;
+ return this;
+ }
+
+ /**
+ * Get the management Id.
+ *
+ * @return the managementId value
+ */
+ public String managementId() {
+ return this.managementId;
+ }
+
+ /**
+ * Set the management Id.
+ *
+ * @param managementId the managementId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withManagementId(String managementId) {
+ this.managementId = managementId;
+ return this;
+ }
+
+ /**
+ * Get the list of protected disks.
+ *
+ * @return the protectedDisks value
+ */
+ public List protectedDisks() {
+ return this.protectedDisks;
+ }
+
+ /**
+ * Set the list of protected disks.
+ *
+ * @param protectedDisks the protectedDisks value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withProtectedDisks(List protectedDisks) {
+ this.protectedDisks = protectedDisks;
+ return this;
+ }
+
+ /**
+ * Get the list of protected managed disks.
+ *
+ * @return the protectedManagedDisks value
+ */
+ public List protectedManagedDisks() {
+ return this.protectedManagedDisks;
+ }
+
+ /**
+ * Set the list of protected managed disks.
+ *
+ * @param protectedManagedDisks the protectedManagedDisks value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withProtectedManagedDisks(List protectedManagedDisks) {
+ this.protectedManagedDisks = protectedManagedDisks;
+ return this;
+ }
+
+ /**
+ * Get primary fabric location.
+ *
+ * @return the primaryFabricLocation value
+ */
+ public String primaryFabricLocation() {
+ return this.primaryFabricLocation;
+ }
+
+ /**
+ * Set primary fabric location.
+ *
+ * @param primaryFabricLocation the primaryFabricLocation value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withPrimaryFabricLocation(String primaryFabricLocation) {
+ this.primaryFabricLocation = primaryFabricLocation;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric location.
+ *
+ * @return the recoveryFabricLocation value
+ */
+ public String recoveryFabricLocation() {
+ return this.recoveryFabricLocation;
+ }
+
+ /**
+ * Set the recovery fabric location.
+ *
+ * @param recoveryFabricLocation the recoveryFabricLocation value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryFabricLocation(String recoveryFabricLocation) {
+ this.recoveryFabricLocation = recoveryFabricLocation;
+ return this;
+ }
+
+ /**
+ * Get the type of operating system.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the type of operating system.
+ *
+ * @param osType the osType value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the size of recovery virtual machine.
+ *
+ * @return the recoveryAzureVMSize value
+ */
+ public String recoveryAzureVMSize() {
+ return this.recoveryAzureVMSize;
+ }
+
+ /**
+ * Set the size of recovery virtual machine.
+ *
+ * @param recoveryAzureVMSize the recoveryAzureVMSize value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryAzureVMSize(String recoveryAzureVMSize) {
+ this.recoveryAzureVMSize = recoveryAzureVMSize;
+ return this;
+ }
+
+ /**
+ * Get the name of recovery virtual machine.
+ *
+ * @return the recoveryAzureVMName value
+ */
+ public String recoveryAzureVMName() {
+ return this.recoveryAzureVMName;
+ }
+
+ /**
+ * Set the name of recovery virtual machine.
+ *
+ * @param recoveryAzureVMName the recoveryAzureVMName value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryAzureVMName(String recoveryAzureVMName) {
+ this.recoveryAzureVMName = recoveryAzureVMName;
+ return this;
+ }
+
+ /**
+ * Get the recovery resource group.
+ *
+ * @return the recoveryAzureResourceGroupId value
+ */
+ public String recoveryAzureResourceGroupId() {
+ return this.recoveryAzureResourceGroupId;
+ }
+
+ /**
+ * Set the recovery resource group.
+ *
+ * @param recoveryAzureResourceGroupId the recoveryAzureResourceGroupId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryAzureResourceGroupId(String recoveryAzureResourceGroupId) {
+ this.recoveryAzureResourceGroupId = recoveryAzureResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery cloud service.
+ *
+ * @return the recoveryCloudService value
+ */
+ public String recoveryCloudService() {
+ return this.recoveryCloudService;
+ }
+
+ /**
+ * Set the recovery cloud service.
+ *
+ * @param recoveryCloudService the recoveryCloudService value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryCloudService(String recoveryCloudService) {
+ this.recoveryCloudService = recoveryCloudService;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set.
+ *
+ * @return the recoveryAvailabilitySet value
+ */
+ public String recoveryAvailabilitySet() {
+ return this.recoveryAvailabilitySet;
+ }
+
+ /**
+ * Set the recovery availability set.
+ *
+ * @param recoveryAvailabilitySet the recoveryAvailabilitySet value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryAvailabilitySet(String recoveryAvailabilitySet) {
+ this.recoveryAvailabilitySet = recoveryAvailabilitySet;
+ return this;
+ }
+
+ /**
+ * Get the recovery virtual network.
+ *
+ * @return the selectedRecoveryAzureNetworkId value
+ */
+ public String selectedRecoveryAzureNetworkId() {
+ return this.selectedRecoveryAzureNetworkId;
+ }
+
+ /**
+ * Set the recovery virtual network.
+ *
+ * @param selectedRecoveryAzureNetworkId the selectedRecoveryAzureNetworkId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withSelectedRecoveryAzureNetworkId(String selectedRecoveryAzureNetworkId) {
+ this.selectedRecoveryAzureNetworkId = selectedRecoveryAzureNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine nic details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the virtual machine nic details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the synced configuration details.
+ *
+ * @return the vmSyncedConfigDetails value
+ */
+ public AzureToAzureVmSyncedConfigDetails vmSyncedConfigDetails() {
+ return this.vmSyncedConfigDetails;
+ }
+
+ /**
+ * Set the synced configuration details.
+ *
+ * @param vmSyncedConfigDetails the vmSyncedConfigDetails value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withVmSyncedConfigDetails(AzureToAzureVmSyncedConfigDetails vmSyncedConfigDetails) {
+ this.vmSyncedConfigDetails = vmSyncedConfigDetails;
+ return this;
+ }
+
+ /**
+ * Get the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @return the monitoringPercentageCompletion value
+ */
+ public Integer monitoringPercentageCompletion() {
+ return this.monitoringPercentageCompletion;
+ }
+
+ /**
+ * Set the percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
+ *
+ * @param monitoringPercentageCompletion the monitoringPercentageCompletion value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withMonitoringPercentageCompletion(Integer monitoringPercentageCompletion) {
+ this.monitoringPercentageCompletion = monitoringPercentageCompletion;
+ return this;
+ }
+
+ /**
+ * Get the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @return the monitoringJobType value
+ */
+ public String monitoringJobType() {
+ return this.monitoringJobType;
+ }
+
+ /**
+ * Set the type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
+ *
+ * @param monitoringJobType the monitoringJobType value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withMonitoringJobType(String monitoringJobType) {
+ this.monitoringJobType = monitoringJobType;
+ return this;
+ }
+
+ /**
+ * Get the last heartbeat received from the source server.
+ *
+ * @return the lastHeartbeat value
+ */
+ public DateTime lastHeartbeat() {
+ return this.lastHeartbeat;
+ }
+
+ /**
+ * Set the last heartbeat received from the source server.
+ *
+ * @param lastHeartbeat the lastHeartbeat value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withLastHeartbeat(DateTime lastHeartbeat) {
+ this.lastHeartbeat = lastHeartbeat;
+ return this;
+ }
+
+ /**
+ * Get the agent version.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the agent version.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether replication agent update is required.
+ *
+ * @return the isReplicationAgentUpdateRequired value
+ */
+ public Boolean isReplicationAgentUpdateRequired() {
+ return this.isReplicationAgentUpdateRequired;
+ }
+
+ /**
+ * Set a value indicating whether replication agent update is required.
+ *
+ * @param isReplicationAgentUpdateRequired the isReplicationAgentUpdateRequired value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withIsReplicationAgentUpdateRequired(Boolean isReplicationAgentUpdateRequired) {
+ this.isReplicationAgentUpdateRequired = isReplicationAgentUpdateRequired;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric object Id.
+ *
+ * @return the recoveryFabricObjectId value
+ */
+ public String recoveryFabricObjectId() {
+ return this.recoveryFabricObjectId;
+ }
+
+ /**
+ * Set the recovery fabric object Id.
+ *
+ * @param recoveryFabricObjectId the recoveryFabricObjectId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRecoveryFabricObjectId(String recoveryFabricObjectId) {
+ this.recoveryFabricObjectId = recoveryFabricObjectId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get an id associated with the PE that survives actions like switch protection which change the backing PE/CPE objects internally.The lifecycle id gets carried forward to have a link/continuity in being able to have an Id that denotes the "same" protected item even though other internal Ids/ARM Id might be changing.
+ *
+ * @return the lifecycleId value
+ */
+ public String lifecycleId() {
+ return this.lifecycleId;
+ }
+
+ /**
+ * Set an id associated with the PE that survives actions like switch protection which change the backing PE/CPE objects internally.The lifecycle id gets carried forward to have a link/continuity in being able to have an Id that denotes the "same" protected item even though other internal Ids/ARM Id might be changing.
+ *
+ * @param lifecycleId the lifecycleId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withLifecycleId(String lifecycleId) {
+ this.lifecycleId = lifecycleId;
+ return this;
+ }
+
+ /**
+ * Get the test failover fabric object Id.
+ *
+ * @return the testFailoverRecoveryFabricObjectId value
+ */
+ public String testFailoverRecoveryFabricObjectId() {
+ return this.testFailoverRecoveryFabricObjectId;
+ }
+
+ /**
+ * Set the test failover fabric object Id.
+ *
+ * @param testFailoverRecoveryFabricObjectId the testFailoverRecoveryFabricObjectId value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withTestFailoverRecoveryFabricObjectId(String testFailoverRecoveryFabricObjectId) {
+ this.testFailoverRecoveryFabricObjectId = testFailoverRecoveryFabricObjectId;
+ return this;
+ }
+
+ /**
+ * Get the last RPO value in seconds.
+ *
+ * @return the rpoInSeconds value
+ */
+ public Long rpoInSeconds() {
+ return this.rpoInSeconds;
+ }
+
+ /**
+ * Set the last RPO value in seconds.
+ *
+ * @param rpoInSeconds the rpoInSeconds value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withRpoInSeconds(Long rpoInSeconds) {
+ this.rpoInSeconds = rpoInSeconds;
+ return this;
+ }
+
+ /**
+ * Get the time (in UTC) when the last RPO value was calculated by Protection Service.
+ *
+ * @return the lastRpoCalculatedTime value
+ */
+ public DateTime lastRpoCalculatedTime() {
+ return this.lastRpoCalculatedTime;
+ }
+
+ /**
+ * Set the time (in UTC) when the last RPO value was calculated by Protection Service.
+ *
+ * @param lastRpoCalculatedTime the lastRpoCalculatedTime value to set
+ * @return the A2AReplicationDetails object itself.
+ */
+ public A2AReplicationDetails withLastRpoCalculatedTime(DateTime lastRpoCalculatedTime) {
+ this.lastRpoCalculatedTime = lastRpoCalculatedTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReprotectInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReprotectInput.java
new file mode 100644
index 0000000000000..0e2aea6857553
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AReprotectInput.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure specific reprotect input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AReprotectInput extends ReverseReplicationProviderSpecificInput {
+ /**
+ * The recovery container Id.
+ */
+ @JsonProperty(value = "recoveryContainerId")
+ private String recoveryContainerId;
+
+ /**
+ * The list of vm disk details.
+ */
+ @JsonProperty(value = "vmDisks")
+ private List vmDisks;
+
+ /**
+ * The recovery resource group Id. Valid for V2 scenarios.
+ */
+ @JsonProperty(value = "recoveryResourceGroupId")
+ private String recoveryResourceGroupId;
+
+ /**
+ * The recovery cloud service Id. Valid for V1 scenarios.
+ */
+ @JsonProperty(value = "recoveryCloudServiceId")
+ private String recoveryCloudServiceId;
+
+ /**
+ * The recovery availability set.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySetId")
+ private String recoveryAvailabilitySetId;
+
+ /**
+ * The Policy Id.
+ */
+ @JsonProperty(value = "policyId")
+ private String policyId;
+
+ /**
+ * Get the recovery container Id.
+ *
+ * @return the recoveryContainerId value
+ */
+ public String recoveryContainerId() {
+ return this.recoveryContainerId;
+ }
+
+ /**
+ * Set the recovery container Id.
+ *
+ * @param recoveryContainerId the recoveryContainerId value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withRecoveryContainerId(String recoveryContainerId) {
+ this.recoveryContainerId = recoveryContainerId;
+ return this;
+ }
+
+ /**
+ * Get the list of vm disk details.
+ *
+ * @return the vmDisks value
+ */
+ public List vmDisks() {
+ return this.vmDisks;
+ }
+
+ /**
+ * Set the list of vm disk details.
+ *
+ * @param vmDisks the vmDisks value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withVmDisks(List vmDisks) {
+ this.vmDisks = vmDisks;
+ return this;
+ }
+
+ /**
+ * Get the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @return the recoveryResourceGroupId value
+ */
+ public String recoveryResourceGroupId() {
+ return this.recoveryResourceGroupId;
+ }
+
+ /**
+ * Set the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @param recoveryResourceGroupId the recoveryResourceGroupId value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withRecoveryResourceGroupId(String recoveryResourceGroupId) {
+ this.recoveryResourceGroupId = recoveryResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @return the recoveryCloudServiceId value
+ */
+ public String recoveryCloudServiceId() {
+ return this.recoveryCloudServiceId;
+ }
+
+ /**
+ * Set the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @param recoveryCloudServiceId the recoveryCloudServiceId value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withRecoveryCloudServiceId(String recoveryCloudServiceId) {
+ this.recoveryCloudServiceId = recoveryCloudServiceId;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set.
+ *
+ * @return the recoveryAvailabilitySetId value
+ */
+ public String recoveryAvailabilitySetId() {
+ return this.recoveryAvailabilitySetId;
+ }
+
+ /**
+ * Set the recovery availability set.
+ *
+ * @param recoveryAvailabilitySetId the recoveryAvailabilitySetId value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withRecoveryAvailabilitySetId(String recoveryAvailabilitySetId) {
+ this.recoveryAvailabilitySetId = recoveryAvailabilitySetId;
+ return this;
+ }
+
+ /**
+ * Get the Policy Id.
+ *
+ * @return the policyId value
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set the Policy Id.
+ *
+ * @param policyId the policyId value to set
+ * @return the A2AReprotectInput object itself.
+ */
+ public A2AReprotectInput withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ARpRecoveryPointType.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ARpRecoveryPointType.java
new file mode 100644
index 0000000000000..2f64e2622d96c
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ARpRecoveryPointType.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for A2ARpRecoveryPointType.
+ */
+public enum A2ARpRecoveryPointType {
+ /** Enum value Latest. */
+ LATEST("Latest"),
+
+ /** Enum value LatestApplicationConsistent. */
+ LATEST_APPLICATION_CONSISTENT("LatestApplicationConsistent"),
+
+ /** Enum value LatestCrashConsistent. */
+ LATEST_CRASH_CONSISTENT("LatestCrashConsistent"),
+
+ /** Enum value LatestProcessed. */
+ LATEST_PROCESSED("LatestProcessed");
+
+ /** The actual serialized value for a A2ARpRecoveryPointType instance. */
+ private String value;
+
+ A2ARpRecoveryPointType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a A2ARpRecoveryPointType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed A2ARpRecoveryPointType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static A2ARpRecoveryPointType fromString(String value) {
+ A2ARpRecoveryPointType[] items = A2ARpRecoveryPointType.values();
+ for (A2ARpRecoveryPointType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ASwitchProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ASwitchProtectionInput.java
new file mode 100644
index 0000000000000..09833e27a49cf
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2ASwitchProtectionInput.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A specific switch protection input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2ASwitchProtectionInput extends SwitchProtectionProviderSpecificInput {
+ /**
+ * The recovery container Id.
+ */
+ @JsonProperty(value = "recoveryContainerId")
+ private String recoveryContainerId;
+
+ /**
+ * The list of vm disk details.
+ */
+ @JsonProperty(value = "vmDisks")
+ private List vmDisks;
+
+ /**
+ * The list of vm managed disk details.
+ */
+ @JsonProperty(value = "vmManagedDisks")
+ private List vmManagedDisks;
+
+ /**
+ * The recovery resource group Id. Valid for V2 scenarios.
+ */
+ @JsonProperty(value = "recoveryResourceGroupId")
+ private String recoveryResourceGroupId;
+
+ /**
+ * The recovery cloud service Id. Valid for V1 scenarios.
+ */
+ @JsonProperty(value = "recoveryCloudServiceId")
+ private String recoveryCloudServiceId;
+
+ /**
+ * The recovery availability set.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySetId")
+ private String recoveryAvailabilitySetId;
+
+ /**
+ * The Policy Id.
+ */
+ @JsonProperty(value = "policyId")
+ private String policyId;
+
+ /**
+ * Get the recovery container Id.
+ *
+ * @return the recoveryContainerId value
+ */
+ public String recoveryContainerId() {
+ return this.recoveryContainerId;
+ }
+
+ /**
+ * Set the recovery container Id.
+ *
+ * @param recoveryContainerId the recoveryContainerId value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withRecoveryContainerId(String recoveryContainerId) {
+ this.recoveryContainerId = recoveryContainerId;
+ return this;
+ }
+
+ /**
+ * Get the list of vm disk details.
+ *
+ * @return the vmDisks value
+ */
+ public List vmDisks() {
+ return this.vmDisks;
+ }
+
+ /**
+ * Set the list of vm disk details.
+ *
+ * @param vmDisks the vmDisks value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withVmDisks(List vmDisks) {
+ this.vmDisks = vmDisks;
+ return this;
+ }
+
+ /**
+ * Get the list of vm managed disk details.
+ *
+ * @return the vmManagedDisks value
+ */
+ public List vmManagedDisks() {
+ return this.vmManagedDisks;
+ }
+
+ /**
+ * Set the list of vm managed disk details.
+ *
+ * @param vmManagedDisks the vmManagedDisks value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withVmManagedDisks(List vmManagedDisks) {
+ this.vmManagedDisks = vmManagedDisks;
+ return this;
+ }
+
+ /**
+ * Get the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @return the recoveryResourceGroupId value
+ */
+ public String recoveryResourceGroupId() {
+ return this.recoveryResourceGroupId;
+ }
+
+ /**
+ * Set the recovery resource group Id. Valid for V2 scenarios.
+ *
+ * @param recoveryResourceGroupId the recoveryResourceGroupId value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withRecoveryResourceGroupId(String recoveryResourceGroupId) {
+ this.recoveryResourceGroupId = recoveryResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @return the recoveryCloudServiceId value
+ */
+ public String recoveryCloudServiceId() {
+ return this.recoveryCloudServiceId;
+ }
+
+ /**
+ * Set the recovery cloud service Id. Valid for V1 scenarios.
+ *
+ * @param recoveryCloudServiceId the recoveryCloudServiceId value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withRecoveryCloudServiceId(String recoveryCloudServiceId) {
+ this.recoveryCloudServiceId = recoveryCloudServiceId;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set.
+ *
+ * @return the recoveryAvailabilitySetId value
+ */
+ public String recoveryAvailabilitySetId() {
+ return this.recoveryAvailabilitySetId;
+ }
+
+ /**
+ * Set the recovery availability set.
+ *
+ * @param recoveryAvailabilitySetId the recoveryAvailabilitySetId value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withRecoveryAvailabilitySetId(String recoveryAvailabilitySetId) {
+ this.recoveryAvailabilitySetId = recoveryAvailabilitySetId;
+ return this;
+ }
+
+ /**
+ * Get the Policy Id.
+ *
+ * @return the policyId value
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set the Policy Id.
+ *
+ * @param policyId the policyId value to set
+ * @return the A2ASwitchProtectionInput object itself.
+ */
+ public A2ASwitchProtectionInput withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AUpdateReplicationProtectedItemInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AUpdateReplicationProtectedItemInput.java
new file mode 100644
index 0000000000000..2b0a7ee05b7e4
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AUpdateReplicationProtectedItemInput.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage Azure V2 input to update replication protected item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("A2A")
+public class A2AUpdateReplicationProtectedItemInput extends UpdateReplicationProtectedItemProviderInput {
+ /**
+ * The target cloud service ARM Id (for V1).
+ */
+ @JsonProperty(value = "recoveryCloudServiceId")
+ private String recoveryCloudServiceId;
+
+ /**
+ * The target resource group ARM Id (for V2).
+ */
+ @JsonProperty(value = "recoveryResourceGroupId")
+ private String recoveryResourceGroupId;
+
+ /**
+ * Get the target cloud service ARM Id (for V1).
+ *
+ * @return the recoveryCloudServiceId value
+ */
+ public String recoveryCloudServiceId() {
+ return this.recoveryCloudServiceId;
+ }
+
+ /**
+ * Set the target cloud service ARM Id (for V1).
+ *
+ * @param recoveryCloudServiceId the recoveryCloudServiceId value to set
+ * @return the A2AUpdateReplicationProtectedItemInput object itself.
+ */
+ public A2AUpdateReplicationProtectedItemInput withRecoveryCloudServiceId(String recoveryCloudServiceId) {
+ this.recoveryCloudServiceId = recoveryCloudServiceId;
+ return this;
+ }
+
+ /**
+ * Get the target resource group ARM Id (for V2).
+ *
+ * @return the recoveryResourceGroupId value
+ */
+ public String recoveryResourceGroupId() {
+ return this.recoveryResourceGroupId;
+ }
+
+ /**
+ * Set the target resource group ARM Id (for V2).
+ *
+ * @param recoveryResourceGroupId the recoveryResourceGroupId value to set
+ * @return the A2AUpdateReplicationProtectedItemInput object itself.
+ */
+ public A2AUpdateReplicationProtectedItemInput withRecoveryResourceGroupId(String recoveryResourceGroupId) {
+ this.recoveryResourceGroupId = recoveryResourceGroupId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmDiskInputDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmDiskInputDetails.java
new file mode 100644
index 0000000000000..bd0d2a7128352
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmDiskInputDetails.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure VM disk input details.
+ */
+public class A2AVmDiskInputDetails {
+ /**
+ * The disk Uri.
+ */
+ @JsonProperty(value = "diskUri")
+ private String diskUri;
+
+ /**
+ * The recovery VHD storage account Id.
+ */
+ @JsonProperty(value = "recoveryAzureStorageAccountId")
+ private String recoveryAzureStorageAccountId;
+
+ /**
+ * The primary staging storage account Id.
+ */
+ @JsonProperty(value = "primaryStagingAzureStorageAccountId")
+ private String primaryStagingAzureStorageAccountId;
+
+ /**
+ * Get the disk Uri.
+ *
+ * @return the diskUri value
+ */
+ public String diskUri() {
+ return this.diskUri;
+ }
+
+ /**
+ * Set the disk Uri.
+ *
+ * @param diskUri the diskUri value to set
+ * @return the A2AVmDiskInputDetails object itself.
+ */
+ public A2AVmDiskInputDetails withDiskUri(String diskUri) {
+ this.diskUri = diskUri;
+ return this;
+ }
+
+ /**
+ * Get the recovery VHD storage account Id.
+ *
+ * @return the recoveryAzureStorageAccountId value
+ */
+ public String recoveryAzureStorageAccountId() {
+ return this.recoveryAzureStorageAccountId;
+ }
+
+ /**
+ * Set the recovery VHD storage account Id.
+ *
+ * @param recoveryAzureStorageAccountId the recoveryAzureStorageAccountId value to set
+ * @return the A2AVmDiskInputDetails object itself.
+ */
+ public A2AVmDiskInputDetails withRecoveryAzureStorageAccountId(String recoveryAzureStorageAccountId) {
+ this.recoveryAzureStorageAccountId = recoveryAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the primary staging storage account Id.
+ *
+ * @return the primaryStagingAzureStorageAccountId value
+ */
+ public String primaryStagingAzureStorageAccountId() {
+ return this.primaryStagingAzureStorageAccountId;
+ }
+
+ /**
+ * Set the primary staging storage account Id.
+ *
+ * @param primaryStagingAzureStorageAccountId the primaryStagingAzureStorageAccountId value to set
+ * @return the A2AVmDiskInputDetails object itself.
+ */
+ public A2AVmDiskInputDetails withPrimaryStagingAzureStorageAccountId(String primaryStagingAzureStorageAccountId) {
+ this.primaryStagingAzureStorageAccountId = primaryStagingAzureStorageAccountId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmManagedDiskInputDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmManagedDiskInputDetails.java
new file mode 100644
index 0000000000000..69b1657ebd3c2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/A2AVmManagedDiskInputDetails.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure VM managed disk input details.
+ */
+public class A2AVmManagedDiskInputDetails {
+ /**
+ * The disk Id.
+ */
+ @JsonProperty(value = "diskId")
+ private String diskId;
+
+ /**
+ * The primary staging storage account Arm Id.
+ */
+ @JsonProperty(value = "primaryStagingAzureStorageAccountId")
+ private String primaryStagingAzureStorageAccountId;
+
+ /**
+ * The target resource group Arm Id.
+ */
+ @JsonProperty(value = "recoveryResourceGroupId")
+ private String recoveryResourceGroupId;
+
+ /**
+ * Get the disk Id.
+ *
+ * @return the diskId value
+ */
+ public String diskId() {
+ return this.diskId;
+ }
+
+ /**
+ * Set the disk Id.
+ *
+ * @param diskId the diskId value to set
+ * @return the A2AVmManagedDiskInputDetails object itself.
+ */
+ public A2AVmManagedDiskInputDetails withDiskId(String diskId) {
+ this.diskId = diskId;
+ return this;
+ }
+
+ /**
+ * Get the primary staging storage account Arm Id.
+ *
+ * @return the primaryStagingAzureStorageAccountId value
+ */
+ public String primaryStagingAzureStorageAccountId() {
+ return this.primaryStagingAzureStorageAccountId;
+ }
+
+ /**
+ * Set the primary staging storage account Arm Id.
+ *
+ * @param primaryStagingAzureStorageAccountId the primaryStagingAzureStorageAccountId value to set
+ * @return the A2AVmManagedDiskInputDetails object itself.
+ */
+ public A2AVmManagedDiskInputDetails withPrimaryStagingAzureStorageAccountId(String primaryStagingAzureStorageAccountId) {
+ this.primaryStagingAzureStorageAccountId = primaryStagingAzureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the target resource group Arm Id.
+ *
+ * @return the recoveryResourceGroupId value
+ */
+ public String recoveryResourceGroupId() {
+ return this.recoveryResourceGroupId;
+ }
+
+ /**
+ * Set the target resource group Arm Id.
+ *
+ * @param recoveryResourceGroupId the recoveryResourceGroupId value to set
+ * @return the A2AVmManagedDiskInputDetails object itself.
+ */
+ public A2AVmManagedDiskInputDetails withRecoveryResourceGroupId(String recoveryResourceGroupId) {
+ this.recoveryResourceGroupId = recoveryResourceGroupId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMException.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMException.java
new file mode 100644
index 0000000000000..b51c5cb236fb7
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMException.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * ARM inner exception class.
+ */
+public class ARMException {
+ /**
+ * Gets HTTP status code for the error.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * Gets exception message.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Gets exception target.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * Gets service based error details.
+ */
+ @JsonProperty(value = "details")
+ private List details;
+
+ /**
+ * Gets private data for service debugging.
+ */
+ @JsonProperty(value = "innererror")
+ private ARMInnerError innererror;
+
+ /**
+ * Get gets HTTP status code for the error.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set gets HTTP status code for the error.
+ *
+ * @param code the code value to set
+ * @return the ARMException object itself.
+ */
+ public ARMException withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get gets exception message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set gets exception message.
+ *
+ * @param message the message value to set
+ * @return the ARMException object itself.
+ */
+ public ARMException withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get gets exception target.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set gets exception target.
+ *
+ * @param target the target value to set
+ * @return the ARMException object itself.
+ */
+ public ARMException withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get gets service based error details.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Set gets service based error details.
+ *
+ * @param details the details value to set
+ * @return the ARMException object itself.
+ */
+ public ARMException withDetails(List details) {
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * Get gets private data for service debugging.
+ *
+ * @return the innererror value
+ */
+ public ARMInnerError innererror() {
+ return this.innererror;
+ }
+
+ /**
+ * Set gets private data for service debugging.
+ *
+ * @param innererror the innererror value to set
+ * @return the ARMException object itself.
+ */
+ public ARMException withInnererror(ARMInnerError innererror) {
+ this.innererror = innererror;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMExceptionDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMExceptionDetails.java
new file mode 100644
index 0000000000000..74b8656dab219
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMExceptionDetails.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Service based exception details.
+ */
+public class ARMExceptionDetails {
+ /**
+ * Gets service error code.
+ */
+ @JsonProperty(value = "code")
+ private String code;
+
+ /**
+ * Gets error message.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Gets possible cause for error.
+ */
+ @JsonProperty(value = "possibleCauses")
+ private String possibleCauses;
+
+ /**
+ * Gets recommended action for the error.
+ */
+ @JsonProperty(value = "recommendedAction")
+ private String recommendedAction;
+
+ /**
+ * Gets the client request Id for the session.
+ */
+ @JsonProperty(value = "clientRequestId")
+ private String clientRequestId;
+
+ /**
+ * Gets the activity Id for the session.
+ */
+ @JsonProperty(value = "activityId")
+ private String activityId;
+
+ /**
+ * Gets exception target.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * Get gets service error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set gets service error code.
+ *
+ * @param code the code value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get gets error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set gets error message.
+ *
+ * @param message the message value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get gets possible cause for error.
+ *
+ * @return the possibleCauses value
+ */
+ public String possibleCauses() {
+ return this.possibleCauses;
+ }
+
+ /**
+ * Set gets possible cause for error.
+ *
+ * @param possibleCauses the possibleCauses value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withPossibleCauses(String possibleCauses) {
+ this.possibleCauses = possibleCauses;
+ return this;
+ }
+
+ /**
+ * Get gets recommended action for the error.
+ *
+ * @return the recommendedAction value
+ */
+ public String recommendedAction() {
+ return this.recommendedAction;
+ }
+
+ /**
+ * Set gets recommended action for the error.
+ *
+ * @param recommendedAction the recommendedAction value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withRecommendedAction(String recommendedAction) {
+ this.recommendedAction = recommendedAction;
+ return this;
+ }
+
+ /**
+ * Get gets the client request Id for the session.
+ *
+ * @return the clientRequestId value
+ */
+ public String clientRequestId() {
+ return this.clientRequestId;
+ }
+
+ /**
+ * Set gets the client request Id for the session.
+ *
+ * @param clientRequestId the clientRequestId value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withClientRequestId(String clientRequestId) {
+ this.clientRequestId = clientRequestId;
+ return this;
+ }
+
+ /**
+ * Get gets the activity Id for the session.
+ *
+ * @return the activityId value
+ */
+ public String activityId() {
+ return this.activityId;
+ }
+
+ /**
+ * Set gets the activity Id for the session.
+ *
+ * @param activityId the activityId value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withActivityId(String activityId) {
+ this.activityId = activityId;
+ return this;
+ }
+
+ /**
+ * Get gets exception target.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set gets exception target.
+ *
+ * @param target the target value to set
+ * @return the ARMExceptionDetails object itself.
+ */
+ public ARMExceptionDetails withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMInnerError.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMInnerError.java
new file mode 100644
index 0000000000000..b89f77f103e1b
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ARMInnerError.java
@@ -0,0 +1,407 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * ARM internal error class for providing additional debug data.
+ */
+public class ARMInnerError {
+ /**
+ * Gets complete stack trace of the exception.
+ */
+ @JsonProperty(value = "trace")
+ private String trace;
+
+ /**
+ * Gets exception source.
+ */
+ @JsonProperty(value = "source")
+ private String source;
+
+ /**
+ * Gets data related to method which threw the exception.
+ */
+ @JsonProperty(value = "methodStatus")
+ private MethodCallStatus methodStatus;
+
+ /**
+ * Gets cloud Id in exception.
+ */
+ @JsonProperty(value = "cloudId")
+ private String cloudId;
+
+ /**
+ * Gets hyperV host ID.
+ */
+ @JsonProperty(value = "hVHostId")
+ private String hVHostId;
+
+ /**
+ * Gets hyperV cluster Id.
+ */
+ @JsonProperty(value = "hVClusterId")
+ private String hVClusterId;
+
+ /**
+ * Gets network Id.
+ */
+ @JsonProperty(value = "networkId")
+ private String networkId;
+
+ /**
+ * Gets Vm Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * Gets Fabric Id.
+ */
+ @JsonProperty(value = "fabricId")
+ private String fabricId;
+
+ /**
+ * Gets Live Id of the caller.
+ */
+ @JsonProperty(value = "liveId")
+ private String liveId;
+
+ /**
+ * Gets container Id of the caller.
+ */
+ @JsonProperty(value = "containerId")
+ private String containerId;
+
+ /**
+ * Gets resource id used in the call.
+ */
+ @JsonProperty(value = "resourceId")
+ private String resourceId;
+
+ /**
+ * Gets caller resource name.
+ */
+ @JsonProperty(value = "resourceName")
+ private String resourceName;
+
+ /**
+ * Gets subscription Id.
+ */
+ @JsonProperty(value = "subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * Gets serialized SRS log context.
+ */
+ @JsonProperty(value = "serializedSRSLogContext")
+ private String serializedSRSLogContext;
+
+ /**
+ * Get gets complete stack trace of the exception.
+ *
+ * @return the trace value
+ */
+ public String trace() {
+ return this.trace;
+ }
+
+ /**
+ * Set gets complete stack trace of the exception.
+ *
+ * @param trace the trace value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withTrace(String trace) {
+ this.trace = trace;
+ return this;
+ }
+
+ /**
+ * Get gets exception source.
+ *
+ * @return the source value
+ */
+ public String source() {
+ return this.source;
+ }
+
+ /**
+ * Set gets exception source.
+ *
+ * @param source the source value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withSource(String source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get gets data related to method which threw the exception.
+ *
+ * @return the methodStatus value
+ */
+ public MethodCallStatus methodStatus() {
+ return this.methodStatus;
+ }
+
+ /**
+ * Set gets data related to method which threw the exception.
+ *
+ * @param methodStatus the methodStatus value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withMethodStatus(MethodCallStatus methodStatus) {
+ this.methodStatus = methodStatus;
+ return this;
+ }
+
+ /**
+ * Get gets cloud Id in exception.
+ *
+ * @return the cloudId value
+ */
+ public String cloudId() {
+ return this.cloudId;
+ }
+
+ /**
+ * Set gets cloud Id in exception.
+ *
+ * @param cloudId the cloudId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withCloudId(String cloudId) {
+ this.cloudId = cloudId;
+ return this;
+ }
+
+ /**
+ * Get gets hyperV host ID.
+ *
+ * @return the hVHostId value
+ */
+ public String hVHostId() {
+ return this.hVHostId;
+ }
+
+ /**
+ * Set gets hyperV host ID.
+ *
+ * @param hVHostId the hVHostId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withHVHostId(String hVHostId) {
+ this.hVHostId = hVHostId;
+ return this;
+ }
+
+ /**
+ * Get gets hyperV cluster Id.
+ *
+ * @return the hVClusterId value
+ */
+ public String hVClusterId() {
+ return this.hVClusterId;
+ }
+
+ /**
+ * Set gets hyperV cluster Id.
+ *
+ * @param hVClusterId the hVClusterId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withHVClusterId(String hVClusterId) {
+ this.hVClusterId = hVClusterId;
+ return this;
+ }
+
+ /**
+ * Get gets network Id.
+ *
+ * @return the networkId value
+ */
+ public String networkId() {
+ return this.networkId;
+ }
+
+ /**
+ * Set gets network Id.
+ *
+ * @param networkId the networkId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withNetworkId(String networkId) {
+ this.networkId = networkId;
+ return this;
+ }
+
+ /**
+ * Get gets Vm Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set gets Vm Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get gets Fabric Id.
+ *
+ * @return the fabricId value
+ */
+ public String fabricId() {
+ return this.fabricId;
+ }
+
+ /**
+ * Set gets Fabric Id.
+ *
+ * @param fabricId the fabricId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withFabricId(String fabricId) {
+ this.fabricId = fabricId;
+ return this;
+ }
+
+ /**
+ * Get gets Live Id of the caller.
+ *
+ * @return the liveId value
+ */
+ public String liveId() {
+ return this.liveId;
+ }
+
+ /**
+ * Set gets Live Id of the caller.
+ *
+ * @param liveId the liveId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withLiveId(String liveId) {
+ this.liveId = liveId;
+ return this;
+ }
+
+ /**
+ * Get gets container Id of the caller.
+ *
+ * @return the containerId value
+ */
+ public String containerId() {
+ return this.containerId;
+ }
+
+ /**
+ * Set gets container Id of the caller.
+ *
+ * @param containerId the containerId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withContainerId(String containerId) {
+ this.containerId = containerId;
+ return this;
+ }
+
+ /**
+ * Get gets resource id used in the call.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set gets resource id used in the call.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get gets caller resource name.
+ *
+ * @return the resourceName value
+ */
+ public String resourceName() {
+ return this.resourceName;
+ }
+
+ /**
+ * Set gets caller resource name.
+ *
+ * @param resourceName the resourceName value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ return this;
+ }
+
+ /**
+ * Get gets subscription Id.
+ *
+ * @return the subscriptionId value
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Set gets subscription Id.
+ *
+ * @param subscriptionId the subscriptionId value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /**
+ * Get gets serialized SRS log context.
+ *
+ * @return the serializedSRSLogContext value
+ */
+ public String serializedSRSLogContext() {
+ return this.serializedSRSLogContext;
+ }
+
+ /**
+ * Set gets serialized SRS log context.
+ *
+ * @param serializedSRSLogContext the serializedSRSLogContext value to set
+ * @return the ARMInnerError object itself.
+ */
+ public ARMInnerError withSerializedSRSLogContext(String serializedSRSLogContext) {
+ this.serializedSRSLogContext = serializedSRSLogContext;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ASRTask.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ASRTask.java
new file mode 100644
index 0000000000000..1b3fe248d7fea
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ASRTask.java
@@ -0,0 +1,335 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Task of the Job.
+ */
+public class ASRTask {
+ /**
+ * The Id.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * The unique Task name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The start time.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * The end time.
+ */
+ @JsonProperty(value = "endTime")
+ private DateTime endTime;
+
+ /**
+ * The state/actions applicable on this task.
+ */
+ @JsonProperty(value = "allowedActions")
+ private List allowedActions;
+
+ /**
+ * The name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The State. It is one of these values - NotStarted, InProgress,
+ * Succeeded, Failed, Cancelled, Suspended or Other.
+ */
+ @JsonProperty(value = "state")
+ private String state;
+
+ /**
+ * The description of the task state. For example - For Succeeded state,
+ * description can be Completed, PartiallySucceeded,
+ * CompletedWithInformation or Skipped.
+ */
+ @JsonProperty(value = "stateDescription")
+ private String stateDescription;
+
+ /**
+ * The type of task. Details in CustomDetails property depend on this type.
+ */
+ @JsonProperty(value = "taskType")
+ private String taskType;
+
+ /**
+ * The custom task details based on the task type.
+ */
+ @JsonProperty(value = "customDetails")
+ private TaskTypeDetails customDetails;
+
+ /**
+ * The custom task details based on the task type, if the task type is
+ * GroupTaskDetails or one of the types derived from it.
+ */
+ @JsonProperty(value = "groupTaskCustomDetails")
+ private GroupTaskDetails groupTaskCustomDetails;
+
+ /**
+ * The task error details.
+ */
+ @JsonProperty(value = "errors")
+ private List errors;
+
+ /**
+ * Get the Id.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the Id.
+ *
+ * @param taskId the taskId value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withTaskId(String taskId) {
+ this.taskId = taskId;
+ return this;
+ }
+
+ /**
+ * Get the unique Task name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the unique Task name.
+ *
+ * @param name the name value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the start time.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the start time.
+ *
+ * @param startTime the startTime value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the end time.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the end time.
+ *
+ * @param endTime the endTime value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the state/actions applicable on this task.
+ *
+ * @return the allowedActions value
+ */
+ public List allowedActions() {
+ return this.allowedActions;
+ }
+
+ /**
+ * Set the state/actions applicable on this task.
+ *
+ * @param allowedActions the allowedActions value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withAllowedActions(List allowedActions) {
+ this.allowedActions = allowedActions;
+ return this;
+ }
+
+ /**
+ * Get the name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the State. It is one of these values - NotStarted, InProgress, Succeeded, Failed, Cancelled, Suspended or Other.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the State. It is one of these values - NotStarted, InProgress, Succeeded, Failed, Cancelled, Suspended or Other.
+ *
+ * @param state the state value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the description of the task state. For example - For Succeeded state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped.
+ *
+ * @return the stateDescription value
+ */
+ public String stateDescription() {
+ return this.stateDescription;
+ }
+
+ /**
+ * Set the description of the task state. For example - For Succeeded state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped.
+ *
+ * @param stateDescription the stateDescription value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withStateDescription(String stateDescription) {
+ this.stateDescription = stateDescription;
+ return this;
+ }
+
+ /**
+ * Get the type of task. Details in CustomDetails property depend on this type.
+ *
+ * @return the taskType value
+ */
+ public String taskType() {
+ return this.taskType;
+ }
+
+ /**
+ * Set the type of task. Details in CustomDetails property depend on this type.
+ *
+ * @param taskType the taskType value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withTaskType(String taskType) {
+ this.taskType = taskType;
+ return this;
+ }
+
+ /**
+ * Get the custom task details based on the task type.
+ *
+ * @return the customDetails value
+ */
+ public TaskTypeDetails customDetails() {
+ return this.customDetails;
+ }
+
+ /**
+ * Set the custom task details based on the task type.
+ *
+ * @param customDetails the customDetails value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withCustomDetails(TaskTypeDetails customDetails) {
+ this.customDetails = customDetails;
+ return this;
+ }
+
+ /**
+ * Get the custom task details based on the task type, if the task type is GroupTaskDetails or one of the types derived from it.
+ *
+ * @return the groupTaskCustomDetails value
+ */
+ public GroupTaskDetails groupTaskCustomDetails() {
+ return this.groupTaskCustomDetails;
+ }
+
+ /**
+ * Set the custom task details based on the task type, if the task type is GroupTaskDetails or one of the types derived from it.
+ *
+ * @param groupTaskCustomDetails the groupTaskCustomDetails value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withGroupTaskCustomDetails(GroupTaskDetails groupTaskCustomDetails) {
+ this.groupTaskCustomDetails = groupTaskCustomDetails;
+ return this;
+ }
+
+ /**
+ * Get the task error details.
+ *
+ * @return the errors value
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Set the task error details.
+ *
+ * @param errors the errors value to set
+ * @return the ASRTask object itself.
+ */
+ public ASRTask withErrors(List errors) {
+ this.errors = errors;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequest.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequest.java
new file mode 100644
index 0000000000000..8fe9e8528814e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input required to add vCenter.
+ */
+public class AddVCenterRequest {
+ /**
+ * The properties of an add vCenter request.
+ */
+ @JsonProperty(value = "properties")
+ private AddVCenterRequestProperties properties;
+
+ /**
+ * Get the properties of an add vCenter request.
+ *
+ * @return the properties value
+ */
+ public AddVCenterRequestProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties of an add vCenter request.
+ *
+ * @param properties the properties value to set
+ * @return the AddVCenterRequest object itself.
+ */
+ public AddVCenterRequest withProperties(AddVCenterRequestProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequestProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequestProperties.java
new file mode 100644
index 0000000000000..fc99ef584baee
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AddVCenterRequestProperties.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of an add vCenter request.
+ */
+public class AddVCenterRequestProperties {
+ /**
+ * The friendly name of the vCenter.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The IP address of the vCenter to be discovered.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The process server Id from where the discovery is orchestrated.
+ */
+ @JsonProperty(value = "processServerId")
+ private String processServerId;
+
+ /**
+ * The port number for discovery.
+ */
+ @JsonProperty(value = "port")
+ private String port;
+
+ /**
+ * The account Id which has privileges to discover the vCenter.
+ */
+ @JsonProperty(value = "runAsAccountId")
+ private String runAsAccountId;
+
+ /**
+ * Get the friendly name of the vCenter.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the friendly name of the vCenter.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the AddVCenterRequestProperties object itself.
+ */
+ public AddVCenterRequestProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the IP address of the vCenter to be discovered.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the IP address of the vCenter to be discovered.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the AddVCenterRequestProperties object itself.
+ */
+ public AddVCenterRequestProperties withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the process server Id from where the discovery is orchestrated.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the process server Id from where the discovery is orchestrated.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the AddVCenterRequestProperties object itself.
+ */
+ public AddVCenterRequestProperties withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the port number for discovery.
+ *
+ * @return the port value
+ */
+ public String port() {
+ return this.port;
+ }
+
+ /**
+ * Set the port number for discovery.
+ *
+ * @param port the port value to set
+ * @return the AddVCenterRequestProperties object itself.
+ */
+ public AddVCenterRequestProperties withPort(String port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get the account Id which has privileges to discover the vCenter.
+ *
+ * @return the runAsAccountId value
+ */
+ public String runAsAccountId() {
+ return this.runAsAccountId;
+ }
+
+ /**
+ * Set the account Id which has privileges to discover the vCenter.
+ *
+ * @param runAsAccountId the runAsAccountId value to set
+ * @return the AddVCenterRequestProperties object itself.
+ */
+ public AddVCenterRequestProperties withRunAsAccountId(String runAsAccountId) {
+ this.runAsAccountId = runAsAccountId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Alert.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Alert.java
new file mode 100644
index 0000000000000..b13048938f764
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Alert.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.AlertInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+import java.util.List;
+
+/**
+ * Type representing Alert.
+ */
+public interface Alert extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ AlertProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Alert definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVault, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Alert definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Alert definition.
+ */
+ interface Blank extends WithVault {
+ }
+
+ /**
+ * The stage of the alert definition allowing to specify Vault.
+ */
+ interface WithVault {
+ /**
+ * Specifies .
+ * @return the next definition stage
+ */
+ WithProperties withExistingVault();
+ }
+
+ /**
+ * The stage of the alert definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The properties of a configure alert request
+ * @return the next definition stage
+ */
+ WithCreate withProperties(ConfigureAlertRequestProperties properties);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Alert update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of Alert update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the alert update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The properties of a configure alert request
+ * @return the next update stage
+ */
+ Update withProperties(ConfigureAlertRequestProperties properties);
+ }
+
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlertProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlertProperties.java
new file mode 100644
index 0000000000000..b2c5850ce7281
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlertProperties.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of an alert.
+ */
+public class AlertProperties {
+ /**
+ * A value indicating whether to send email to subscription administrator.
+ */
+ @JsonProperty(value = "sendToOwners")
+ private String sendToOwners;
+
+ /**
+ * The custom email address for sending emails.
+ */
+ @JsonProperty(value = "customEmailAddresses")
+ private List customEmailAddresses;
+
+ /**
+ * The locale for the email notification.
+ */
+ @JsonProperty(value = "locale")
+ private String locale;
+
+ /**
+ * Get a value indicating whether to send email to subscription administrator.
+ *
+ * @return the sendToOwners value
+ */
+ public String sendToOwners() {
+ return this.sendToOwners;
+ }
+
+ /**
+ * Set a value indicating whether to send email to subscription administrator.
+ *
+ * @param sendToOwners the sendToOwners value to set
+ * @return the AlertProperties object itself.
+ */
+ public AlertProperties withSendToOwners(String sendToOwners) {
+ this.sendToOwners = sendToOwners;
+ return this;
+ }
+
+ /**
+ * Get the custom email address for sending emails.
+ *
+ * @return the customEmailAddresses value
+ */
+ public List customEmailAddresses() {
+ return this.customEmailAddresses;
+ }
+
+ /**
+ * Set the custom email address for sending emails.
+ *
+ * @param customEmailAddresses the customEmailAddresses value to set
+ * @return the AlertProperties object itself.
+ */
+ public AlertProperties withCustomEmailAddresses(List customEmailAddresses) {
+ this.customEmailAddresses = customEmailAddresses;
+ return this;
+ }
+
+ /**
+ * Get the locale for the email notification.
+ *
+ * @return the locale value
+ */
+ public String locale() {
+ return this.locale;
+ }
+
+ /**
+ * Set the locale for the email notification.
+ *
+ * @param locale the locale value to set
+ * @return the AlertProperties object itself.
+ */
+ public AlertProperties withLocale(String locale) {
+ this.locale = locale;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlternateLocationRecoveryOption.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlternateLocationRecoveryOption.java
new file mode 100644
index 0000000000000..316ccd8bd27dc
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AlternateLocationRecoveryOption.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AlternateLocationRecoveryOption.
+ */
+public enum AlternateLocationRecoveryOption {
+ /** Enum value CreateVmIfNotFound. */
+ CREATE_VM_IF_NOT_FOUND("CreateVmIfNotFound"),
+
+ /** Enum value NoAction. */
+ NO_ACTION("NoAction");
+
+ /** The actual serialized value for a AlternateLocationRecoveryOption instance. */
+ private String value;
+
+ AlternateLocationRecoveryOption(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AlternateLocationRecoveryOption instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AlternateLocationRecoveryOption object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AlternateLocationRecoveryOption fromString(String value) {
+ AlternateLocationRecoveryOption[] items = AlternateLocationRecoveryOption.values();
+ for (AlternateLocationRecoveryOption item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInput.java
new file mode 100644
index 0000000000000..6739d619219c6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input to apply recovery point.
+ */
+public class ApplyRecoveryPointInput {
+ /**
+ * The input properties to apply recovery point.
+ */
+ @JsonProperty(value = "properties")
+ private ApplyRecoveryPointInputProperties properties;
+
+ /**
+ * Get the input properties to apply recovery point.
+ *
+ * @return the properties value
+ */
+ public ApplyRecoveryPointInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the input properties to apply recovery point.
+ *
+ * @param properties the properties value to set
+ * @return the ApplyRecoveryPointInput object itself.
+ */
+ public ApplyRecoveryPointInput withProperties(ApplyRecoveryPointInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInputProperties.java
new file mode 100644
index 0000000000000..b3cc86401bd85
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointInputProperties.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input properties to apply recovery point.
+ */
+public class ApplyRecoveryPointInputProperties {
+ /**
+ * The recovery point Id.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Provider specific input for applying recovery point.
+ */
+ @JsonProperty(value = "providerSpecificDetails")
+ private ApplyRecoveryPointProviderSpecificInput providerSpecificDetails;
+
+ /**
+ * Get the recovery point Id.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point Id.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the ApplyRecoveryPointInputProperties object itself.
+ */
+ public ApplyRecoveryPointInputProperties withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get provider specific input for applying recovery point.
+ *
+ * @return the providerSpecificDetails value
+ */
+ public ApplyRecoveryPointProviderSpecificInput providerSpecificDetails() {
+ return this.providerSpecificDetails;
+ }
+
+ /**
+ * Set provider specific input for applying recovery point.
+ *
+ * @param providerSpecificDetails the providerSpecificDetails value to set
+ * @return the ApplyRecoveryPointInputProperties object itself.
+ */
+ public ApplyRecoveryPointInputProperties withProviderSpecificDetails(ApplyRecoveryPointProviderSpecificInput providerSpecificDetails) {
+ this.providerSpecificDetails = providerSpecificDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointProviderSpecificInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointProviderSpecificInput.java
new file mode 100644
index 0000000000000..cad3924deae68
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ApplyRecoveryPointProviderSpecificInput.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Provider specific input for apply recovery point.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("ApplyRecoveryPointProviderSpecificInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVReplicaAzure", value = HyperVReplicaAzureApplyRecoveryPointInput.class),
+ @JsonSubTypes.Type(name = "InMageAzureV2", value = InMageAzureV2ApplyRecoveryPointInput.class),
+ @JsonSubTypes.Type(name = "A2A", value = A2AApplyRecoveryPointInput.class)
+})
+public class ApplyRecoveryPointProviderSpecificInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AsrJobDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AsrJobDetails.java
new file mode 100644
index 0000000000000..d2cdaf22af8f4
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AsrJobDetails.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents job details based on specific job type.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("AsrJobDetails")
+public class AsrJobDetails extends JobDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AutomationRunbookTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AutomationRunbookTaskDetails.java
new file mode 100644
index 0000000000000..b97b2e4c475a5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AutomationRunbookTaskDetails.java
@@ -0,0 +1,255 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents the task details for an automation runbook.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("AutomationRunbookTaskDetails")
+public class AutomationRunbookTaskDetails extends TaskTypeDetails {
+ /**
+ * The recovery plan task name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The cloud service of the automation runbook account.
+ */
+ @JsonProperty(value = "cloudServiceName")
+ private String cloudServiceName;
+
+ /**
+ * The subscription Id of the automation runbook account.
+ */
+ @JsonProperty(value = "subscriptionId")
+ private String subscriptionId;
+
+ /**
+ * The automation account name of the runbook.
+ */
+ @JsonProperty(value = "accountName")
+ private String accountName;
+
+ /**
+ * The runbook Id.
+ */
+ @JsonProperty(value = "runbookId")
+ private String runbookId;
+
+ /**
+ * The runbook name.
+ */
+ @JsonProperty(value = "runbookName")
+ private String runbookName;
+
+ /**
+ * The job Id of the runbook execution.
+ */
+ @JsonProperty(value = "jobId")
+ private String jobId;
+
+ /**
+ * The execution output of the runbook.
+ */
+ @JsonProperty(value = "jobOutput")
+ private String jobOutput;
+
+ /**
+ * A value indicating whether it is a primary side script or not.
+ */
+ @JsonProperty(value = "isPrimarySideScript")
+ private Boolean isPrimarySideScript;
+
+ /**
+ * Get the recovery plan task name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the recovery plan task name.
+ *
+ * @param name the name value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the cloud service of the automation runbook account.
+ *
+ * @return the cloudServiceName value
+ */
+ public String cloudServiceName() {
+ return this.cloudServiceName;
+ }
+
+ /**
+ * Set the cloud service of the automation runbook account.
+ *
+ * @param cloudServiceName the cloudServiceName value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withCloudServiceName(String cloudServiceName) {
+ this.cloudServiceName = cloudServiceName;
+ return this;
+ }
+
+ /**
+ * Get the subscription Id of the automation runbook account.
+ *
+ * @return the subscriptionId value
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Set the subscription Id of the automation runbook account.
+ *
+ * @param subscriptionId the subscriptionId value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /**
+ * Get the automation account name of the runbook.
+ *
+ * @return the accountName value
+ */
+ public String accountName() {
+ return this.accountName;
+ }
+
+ /**
+ * Set the automation account name of the runbook.
+ *
+ * @param accountName the accountName value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withAccountName(String accountName) {
+ this.accountName = accountName;
+ return this;
+ }
+
+ /**
+ * Get the runbook Id.
+ *
+ * @return the runbookId value
+ */
+ public String runbookId() {
+ return this.runbookId;
+ }
+
+ /**
+ * Set the runbook Id.
+ *
+ * @param runbookId the runbookId value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withRunbookId(String runbookId) {
+ this.runbookId = runbookId;
+ return this;
+ }
+
+ /**
+ * Get the runbook name.
+ *
+ * @return the runbookName value
+ */
+ public String runbookName() {
+ return this.runbookName;
+ }
+
+ /**
+ * Set the runbook name.
+ *
+ * @param runbookName the runbookName value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withRunbookName(String runbookName) {
+ this.runbookName = runbookName;
+ return this;
+ }
+
+ /**
+ * Get the job Id of the runbook execution.
+ *
+ * @return the jobId value
+ */
+ public String jobId() {
+ return this.jobId;
+ }
+
+ /**
+ * Set the job Id of the runbook execution.
+ *
+ * @param jobId the jobId value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withJobId(String jobId) {
+ this.jobId = jobId;
+ return this;
+ }
+
+ /**
+ * Get the execution output of the runbook.
+ *
+ * @return the jobOutput value
+ */
+ public String jobOutput() {
+ return this.jobOutput;
+ }
+
+ /**
+ * Set the execution output of the runbook.
+ *
+ * @param jobOutput the jobOutput value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withJobOutput(String jobOutput) {
+ this.jobOutput = jobOutput;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether it is a primary side script or not.
+ *
+ * @return the isPrimarySideScript value
+ */
+ public Boolean isPrimarySideScript() {
+ return this.isPrimarySideScript;
+ }
+
+ /**
+ * Set a value indicating whether it is a primary side script or not.
+ *
+ * @param isPrimarySideScript the isPrimarySideScript value to set
+ * @return the AutomationRunbookTaskDetails object itself.
+ */
+ public AutomationRunbookTaskDetails withIsPrimarySideScript(Boolean isPrimarySideScript) {
+ this.isPrimarySideScript = isPrimarySideScript;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricCreationInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricCreationInput.java
new file mode 100644
index 0000000000000..315fa804408a5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricCreationInput.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Fabric provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("Azure")
+public class AzureFabricCreationInput extends FabricSpecificCreationInput {
+ /**
+ * The Location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Get the Location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the Location.
+ *
+ * @param location the location value to set
+ * @return the AzureFabricCreationInput object itself.
+ */
+ public AzureFabricCreationInput withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricSpecificDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricSpecificDetails.java
new file mode 100644
index 0000000000000..6e863a741c2a6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureFabricSpecificDetails.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure Fabric Specific Details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("Azure")
+public class AzureFabricSpecificDetails extends FabricSpecificDetails {
+ /**
+ * The Location for the Azure fabric.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The container Ids for the Azure fabric.
+ */
+ @JsonProperty(value = "containerIds")
+ private List containerIds;
+
+ /**
+ * Get the Location for the Azure fabric.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the Location for the Azure fabric.
+ *
+ * @param location the location value to set
+ * @return the AzureFabricSpecificDetails object itself.
+ */
+ public AzureFabricSpecificDetails withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the container Ids for the Azure fabric.
+ *
+ * @return the containerIds value
+ */
+ public List containerIds() {
+ return this.containerIds;
+ }
+
+ /**
+ * Set the container Ids for the Azure fabric.
+ *
+ * @param containerIds the containerIds value to set
+ * @return the AzureFabricSpecificDetails object itself.
+ */
+ public AzureFabricSpecificDetails withContainerIds(List containerIds) {
+ this.containerIds = containerIds;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureCreateNetworkMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureCreateNetworkMappingInput.java
new file mode 100644
index 0000000000000..72198cd8a5d91
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureCreateNetworkMappingInput.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Create network mappings input properties/behavior specific to Azure to Azure
+ * Network mapping.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("AzureToAzure")
+public class AzureToAzureCreateNetworkMappingInput extends FabricSpecificCreateNetworkMappingInput {
+ /**
+ * The primary azure vnet Id.
+ */
+ @JsonProperty(value = "primaryNetworkId")
+ private String primaryNetworkId;
+
+ /**
+ * Get the primary azure vnet Id.
+ *
+ * @return the primaryNetworkId value
+ */
+ public String primaryNetworkId() {
+ return this.primaryNetworkId;
+ }
+
+ /**
+ * Set the primary azure vnet Id.
+ *
+ * @param primaryNetworkId the primaryNetworkId value to set
+ * @return the AzureToAzureCreateNetworkMappingInput object itself.
+ */
+ public AzureToAzureCreateNetworkMappingInput withPrimaryNetworkId(String primaryNetworkId) {
+ this.primaryNetworkId = primaryNetworkId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureNetworkMappingSettings.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureNetworkMappingSettings.java
new file mode 100644
index 0000000000000..0f990a0a95a9e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureNetworkMappingSettings.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * A2A Network Mapping fabric specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("AzureToAzure")
+public class AzureToAzureNetworkMappingSettings extends NetworkMappingFabricSpecificSettings {
+ /**
+ * The primary fabric location.
+ */
+ @JsonProperty(value = "primaryFabricLocation")
+ private String primaryFabricLocation;
+
+ /**
+ * The recovery fabric location.
+ */
+ @JsonProperty(value = "recoveryFabricLocation")
+ private String recoveryFabricLocation;
+
+ /**
+ * Get the primary fabric location.
+ *
+ * @return the primaryFabricLocation value
+ */
+ public String primaryFabricLocation() {
+ return this.primaryFabricLocation;
+ }
+
+ /**
+ * Set the primary fabric location.
+ *
+ * @param primaryFabricLocation the primaryFabricLocation value to set
+ * @return the AzureToAzureNetworkMappingSettings object itself.
+ */
+ public AzureToAzureNetworkMappingSettings withPrimaryFabricLocation(String primaryFabricLocation) {
+ this.primaryFabricLocation = primaryFabricLocation;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric location.
+ *
+ * @return the recoveryFabricLocation value
+ */
+ public String recoveryFabricLocation() {
+ return this.recoveryFabricLocation;
+ }
+
+ /**
+ * Set the recovery fabric location.
+ *
+ * @param recoveryFabricLocation the recoveryFabricLocation value to set
+ * @return the AzureToAzureNetworkMappingSettings object itself.
+ */
+ public AzureToAzureNetworkMappingSettings withRecoveryFabricLocation(String recoveryFabricLocation) {
+ this.recoveryFabricLocation = recoveryFabricLocation;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureUpdateNetworkMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureUpdateNetworkMappingInput.java
new file mode 100644
index 0000000000000..9a1e43e357f10
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureUpdateNetworkMappingInput.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Updates network mappings input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("AzureToAzure")
+public class AzureToAzureUpdateNetworkMappingInput extends FabricSpecificUpdateNetworkMappingInput {
+ /**
+ * The primary azure vnet Id.
+ */
+ @JsonProperty(value = "primaryNetworkId")
+ private String primaryNetworkId;
+
+ /**
+ * Get the primary azure vnet Id.
+ *
+ * @return the primaryNetworkId value
+ */
+ public String primaryNetworkId() {
+ return this.primaryNetworkId;
+ }
+
+ /**
+ * Set the primary azure vnet Id.
+ *
+ * @param primaryNetworkId the primaryNetworkId value to set
+ * @return the AzureToAzureUpdateNetworkMappingInput object itself.
+ */
+ public AzureToAzureUpdateNetworkMappingInput withPrimaryNetworkId(String primaryNetworkId) {
+ this.primaryNetworkId = primaryNetworkId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureVmSyncedConfigDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureVmSyncedConfigDetails.java
new file mode 100644
index 0000000000000..bfedd8eb6f6c2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureToAzureVmSyncedConfigDetails.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure to Azure VM synced configuration details.
+ */
+public class AzureToAzureVmSyncedConfigDetails {
+ /**
+ * The Azure VM tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The Azure role assignments.
+ */
+ @JsonProperty(value = "roleAssignments")
+ private List roleAssignments;
+
+ /**
+ * The Azure VM input endpoints.
+ */
+ @JsonProperty(value = "inputEndpoints")
+ private List inputEndpoints;
+
+ /**
+ * Get the Azure VM tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the Azure VM tags.
+ *
+ * @param tags the tags value to set
+ * @return the AzureToAzureVmSyncedConfigDetails object itself.
+ */
+ public AzureToAzureVmSyncedConfigDetails withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the Azure role assignments.
+ *
+ * @return the roleAssignments value
+ */
+ public List roleAssignments() {
+ return this.roleAssignments;
+ }
+
+ /**
+ * Set the Azure role assignments.
+ *
+ * @param roleAssignments the roleAssignments value to set
+ * @return the AzureToAzureVmSyncedConfigDetails object itself.
+ */
+ public AzureToAzureVmSyncedConfigDetails withRoleAssignments(List roleAssignments) {
+ this.roleAssignments = roleAssignments;
+ return this;
+ }
+
+ /**
+ * Get the Azure VM input endpoints.
+ *
+ * @return the inputEndpoints value
+ */
+ public List inputEndpoints() {
+ return this.inputEndpoints;
+ }
+
+ /**
+ * Set the Azure VM input endpoints.
+ *
+ * @param inputEndpoints the inputEndpoints value to set
+ * @return the AzureToAzureVmSyncedConfigDetails object itself.
+ */
+ public AzureToAzureVmSyncedConfigDetails withInputEndpoints(List inputEndpoints) {
+ this.inputEndpoints = inputEndpoints;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureVmDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureVmDiskDetails.java
new file mode 100644
index 0000000000000..97850136329af
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/AzureVmDiskDetails.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Disk details for E2A provider.
+ */
+public class AzureVmDiskDetails {
+ /**
+ * VHD type.
+ */
+ @JsonProperty(value = "vhdType")
+ private String vhdType;
+
+ /**
+ * The VHD id.
+ */
+ @JsonProperty(value = "vhdId")
+ private String vhdId;
+
+ /**
+ * VHD name.
+ */
+ @JsonProperty(value = "vhdName")
+ private String vhdName;
+
+ /**
+ * Max side in MB.
+ */
+ @JsonProperty(value = "maxSizeMB")
+ private String maxSizeMB;
+
+ /**
+ * Blob uri of the Azure disk.
+ */
+ @JsonProperty(value = "targetDiskLocation")
+ private String targetDiskLocation;
+
+ /**
+ * The target Azure disk name.
+ */
+ @JsonProperty(value = "targetDiskName")
+ private String targetDiskName;
+
+ /**
+ * Ordinal\LunId of the disk for the Azure VM.
+ */
+ @JsonProperty(value = "lunId")
+ private String lunId;
+
+ /**
+ * Get vHD type.
+ *
+ * @return the vhdType value
+ */
+ public String vhdType() {
+ return this.vhdType;
+ }
+
+ /**
+ * Set vHD type.
+ *
+ * @param vhdType the vhdType value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withVhdType(String vhdType) {
+ this.vhdType = vhdType;
+ return this;
+ }
+
+ /**
+ * Get the VHD id.
+ *
+ * @return the vhdId value
+ */
+ public String vhdId() {
+ return this.vhdId;
+ }
+
+ /**
+ * Set the VHD id.
+ *
+ * @param vhdId the vhdId value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withVhdId(String vhdId) {
+ this.vhdId = vhdId;
+ return this;
+ }
+
+ /**
+ * Get vHD name.
+ *
+ * @return the vhdName value
+ */
+ public String vhdName() {
+ return this.vhdName;
+ }
+
+ /**
+ * Set vHD name.
+ *
+ * @param vhdName the vhdName value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withVhdName(String vhdName) {
+ this.vhdName = vhdName;
+ return this;
+ }
+
+ /**
+ * Get max side in MB.
+ *
+ * @return the maxSizeMB value
+ */
+ public String maxSizeMB() {
+ return this.maxSizeMB;
+ }
+
+ /**
+ * Set max side in MB.
+ *
+ * @param maxSizeMB the maxSizeMB value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withMaxSizeMB(String maxSizeMB) {
+ this.maxSizeMB = maxSizeMB;
+ return this;
+ }
+
+ /**
+ * Get blob uri of the Azure disk.
+ *
+ * @return the targetDiskLocation value
+ */
+ public String targetDiskLocation() {
+ return this.targetDiskLocation;
+ }
+
+ /**
+ * Set blob uri of the Azure disk.
+ *
+ * @param targetDiskLocation the targetDiskLocation value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withTargetDiskLocation(String targetDiskLocation) {
+ this.targetDiskLocation = targetDiskLocation;
+ return this;
+ }
+
+ /**
+ * Get the target Azure disk name.
+ *
+ * @return the targetDiskName value
+ */
+ public String targetDiskName() {
+ return this.targetDiskName;
+ }
+
+ /**
+ * Set the target Azure disk name.
+ *
+ * @param targetDiskName the targetDiskName value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withTargetDiskName(String targetDiskName) {
+ this.targetDiskName = targetDiskName;
+ return this;
+ }
+
+ /**
+ * Get ordinal\LunId of the disk for the Azure VM.
+ *
+ * @return the lunId value
+ */
+ public String lunId() {
+ return this.lunId;
+ }
+
+ /**
+ * Set ordinal\LunId of the disk for the Azure VM.
+ *
+ * @param lunId the lunId value to set
+ * @return the AzureVmDiskDetails object itself.
+ */
+ public AzureVmDiskDetails withLunId(String lunId) {
+ this.lunId = lunId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigurationSettings.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigurationSettings.java
new file mode 100644
index 0000000000000..866f3bc956213
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigurationSettings.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Replication provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("ConfigurationSettings")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVVirtualMachine", value = HyperVVirtualMachineDetails.class),
+ @JsonSubTypes.Type(name = "VMwareVirtualMachine", value = VMwareVirtualMachineDetails.class),
+ @JsonSubTypes.Type(name = "ReplicationGroupDetails", value = ReplicationGroupDetails.class)
+})
+public class ConfigurationSettings {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequest.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequest.java
new file mode 100644
index 0000000000000..53bed68a4dd1e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Request to configure alerts for the system.
+ */
+public class ConfigureAlertRequest {
+ /**
+ * The properties of a configure alert request.
+ */
+ @JsonProperty(value = "properties")
+ private ConfigureAlertRequestProperties properties;
+
+ /**
+ * Get the properties of a configure alert request.
+ *
+ * @return the properties value
+ */
+ public ConfigureAlertRequestProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties of a configure alert request.
+ *
+ * @param properties the properties value to set
+ * @return the ConfigureAlertRequest object itself.
+ */
+ public ConfigureAlertRequest withProperties(ConfigureAlertRequestProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequestProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequestProperties.java
new file mode 100644
index 0000000000000..17e0f2e53b01c
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConfigureAlertRequestProperties.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of a configure alert request.
+ */
+public class ConfigureAlertRequestProperties {
+ /**
+ * A value indicating whether to send email to subscription administrator.
+ */
+ @JsonProperty(value = "sendToOwners")
+ private String sendToOwners;
+
+ /**
+ * The custom email address for sending emails.
+ */
+ @JsonProperty(value = "customEmailAddresses")
+ private List customEmailAddresses;
+
+ /**
+ * The locale for the email notification.
+ */
+ @JsonProperty(value = "locale")
+ private String locale;
+
+ /**
+ * Get a value indicating whether to send email to subscription administrator.
+ *
+ * @return the sendToOwners value
+ */
+ public String sendToOwners() {
+ return this.sendToOwners;
+ }
+
+ /**
+ * Set a value indicating whether to send email to subscription administrator.
+ *
+ * @param sendToOwners the sendToOwners value to set
+ * @return the ConfigureAlertRequestProperties object itself.
+ */
+ public ConfigureAlertRequestProperties withSendToOwners(String sendToOwners) {
+ this.sendToOwners = sendToOwners;
+ return this;
+ }
+
+ /**
+ * Get the custom email address for sending emails.
+ *
+ * @return the customEmailAddresses value
+ */
+ public List customEmailAddresses() {
+ return this.customEmailAddresses;
+ }
+
+ /**
+ * Set the custom email address for sending emails.
+ *
+ * @param customEmailAddresses the customEmailAddresses value to set
+ * @return the ConfigureAlertRequestProperties object itself.
+ */
+ public ConfigureAlertRequestProperties withCustomEmailAddresses(List customEmailAddresses) {
+ this.customEmailAddresses = customEmailAddresses;
+ return this;
+ }
+
+ /**
+ * Get the locale for the email notification.
+ *
+ * @return the locale value
+ */
+ public String locale() {
+ return this.locale;
+ }
+
+ /**
+ * Set the locale for the email notification.
+ *
+ * @param locale the locale value to set
+ * @return the ConfigureAlertRequestProperties object itself.
+ */
+ public ConfigureAlertRequestProperties withLocale(String locale) {
+ this.locale = locale;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConsistencyCheckTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConsistencyCheckTaskDetails.java
new file mode 100644
index 0000000000000..061d9709b276f
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ConsistencyCheckTaskDetails.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class contains monitoring details of all the inconsistent Protected
+ * Entities in Vmm.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("ConsistencyCheckTaskDetails")
+public class ConsistencyCheckTaskDetails extends TaskTypeDetails {
+ /**
+ * The list of inconsistent Vm details.
+ */
+ @JsonProperty(value = "vmDetails")
+ private List vmDetails;
+
+ /**
+ * Get the list of inconsistent Vm details.
+ *
+ * @return the vmDetails value
+ */
+ public List vmDetails() {
+ return this.vmDetails;
+ }
+
+ /**
+ * Set the list of inconsistent Vm details.
+ *
+ * @param vmDetails the vmDetails value to set
+ * @return the ConsistencyCheckTaskDetails object itself.
+ */
+ public ConsistencyCheckTaskDetails withVmDetails(List vmDetails) {
+ this.vmDetails = vmDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInput.java
new file mode 100644
index 0000000000000..503e8fa8ab205
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Create network mappings input.
+ */
+public class CreateNetworkMappingInput {
+ /**
+ * Input properties for creating network mapping.
+ */
+ @JsonProperty(value = "properties")
+ private CreateNetworkMappingInputProperties properties;
+
+ /**
+ * Get input properties for creating network mapping.
+ *
+ * @return the properties value
+ */
+ public CreateNetworkMappingInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set input properties for creating network mapping.
+ *
+ * @param properties the properties value to set
+ * @return the CreateNetworkMappingInput object itself.
+ */
+ public CreateNetworkMappingInput withProperties(CreateNetworkMappingInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInputProperties.java
new file mode 100644
index 0000000000000..17264871f68ff
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateNetworkMappingInputProperties.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Common input details for network mapping operation.
+ */
+public class CreateNetworkMappingInputProperties {
+ /**
+ * Recovery fabric Name.
+ */
+ @JsonProperty(value = "recoveryFabricName")
+ private String recoveryFabricName;
+
+ /**
+ * Recovery network Id.
+ */
+ @JsonProperty(value = "recoveryNetworkId")
+ private String recoveryNetworkId;
+
+ /**
+ * Fabric specific input properties.
+ */
+ @JsonProperty(value = "fabricSpecificDetails")
+ private FabricSpecificCreateNetworkMappingInput fabricSpecificDetails;
+
+ /**
+ * Get recovery fabric Name.
+ *
+ * @return the recoveryFabricName value
+ */
+ public String recoveryFabricName() {
+ return this.recoveryFabricName;
+ }
+
+ /**
+ * Set recovery fabric Name.
+ *
+ * @param recoveryFabricName the recoveryFabricName value to set
+ * @return the CreateNetworkMappingInputProperties object itself.
+ */
+ public CreateNetworkMappingInputProperties withRecoveryFabricName(String recoveryFabricName) {
+ this.recoveryFabricName = recoveryFabricName;
+ return this;
+ }
+
+ /**
+ * Get recovery network Id.
+ *
+ * @return the recoveryNetworkId value
+ */
+ public String recoveryNetworkId() {
+ return this.recoveryNetworkId;
+ }
+
+ /**
+ * Set recovery network Id.
+ *
+ * @param recoveryNetworkId the recoveryNetworkId value to set
+ * @return the CreateNetworkMappingInputProperties object itself.
+ */
+ public CreateNetworkMappingInputProperties withRecoveryNetworkId(String recoveryNetworkId) {
+ this.recoveryNetworkId = recoveryNetworkId;
+ return this;
+ }
+
+ /**
+ * Get fabric specific input properties.
+ *
+ * @return the fabricSpecificDetails value
+ */
+ public FabricSpecificCreateNetworkMappingInput fabricSpecificDetails() {
+ return this.fabricSpecificDetails;
+ }
+
+ /**
+ * Set fabric specific input properties.
+ *
+ * @param fabricSpecificDetails the fabricSpecificDetails value to set
+ * @return the CreateNetworkMappingInputProperties object itself.
+ */
+ public CreateNetworkMappingInputProperties withFabricSpecificDetails(FabricSpecificCreateNetworkMappingInput fabricSpecificDetails) {
+ this.fabricSpecificDetails = fabricSpecificDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInput.java
new file mode 100644
index 0000000000000..2726da1ee7749
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Protection profile input.
+ */
+public class CreatePolicyInput {
+ /**
+ * Policy creation properties.
+ */
+ @JsonProperty(value = "properties")
+ private CreatePolicyInputProperties properties;
+
+ /**
+ * Get policy creation properties.
+ *
+ * @return the properties value
+ */
+ public CreatePolicyInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set policy creation properties.
+ *
+ * @param properties the properties value to set
+ * @return the CreatePolicyInput object itself.
+ */
+ public CreatePolicyInput withProperties(CreatePolicyInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInputProperties.java
new file mode 100644
index 0000000000000..cc23aedf18cba
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreatePolicyInputProperties.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Policy creation properties.
+ */
+public class CreatePolicyInputProperties {
+ /**
+ * The ReplicationProviderSettings.
+ */
+ @JsonProperty(value = "providerSpecificInput")
+ private PolicyProviderSpecificInput providerSpecificInput;
+
+ /**
+ * Get the ReplicationProviderSettings.
+ *
+ * @return the providerSpecificInput value
+ */
+ public PolicyProviderSpecificInput providerSpecificInput() {
+ return this.providerSpecificInput;
+ }
+
+ /**
+ * Set the ReplicationProviderSettings.
+ *
+ * @param providerSpecificInput the providerSpecificInput value to set
+ * @return the CreatePolicyInputProperties object itself.
+ */
+ public CreatePolicyInputProperties withProviderSpecificInput(PolicyProviderSpecificInput providerSpecificInput) {
+ this.providerSpecificInput = providerSpecificInput;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInput.java
new file mode 100644
index 0000000000000..4d877ead9b23f
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Create protection container input.
+ */
+public class CreateProtectionContainerInput {
+ /**
+ * Create protection container input properties.
+ */
+ @JsonProperty(value = "properties")
+ private CreateProtectionContainerInputProperties properties;
+
+ /**
+ * Get create protection container input properties.
+ *
+ * @return the properties value
+ */
+ public CreateProtectionContainerInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set create protection container input properties.
+ *
+ * @param properties the properties value to set
+ * @return the CreateProtectionContainerInput object itself.
+ */
+ public CreateProtectionContainerInput withProperties(CreateProtectionContainerInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInputProperties.java
new file mode 100644
index 0000000000000..45cd00278f129
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerInputProperties.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Create protection container input properties.
+ */
+public class CreateProtectionContainerInputProperties {
+ /**
+ * Provider specific inputs for container creation.
+ */
+ @JsonProperty(value = "providerSpecificInput")
+ private List providerSpecificInput;
+
+ /**
+ * Get provider specific inputs for container creation.
+ *
+ * @return the providerSpecificInput value
+ */
+ public List providerSpecificInput() {
+ return this.providerSpecificInput;
+ }
+
+ /**
+ * Set provider specific inputs for container creation.
+ *
+ * @param providerSpecificInput the providerSpecificInput value to set
+ * @return the CreateProtectionContainerInputProperties object itself.
+ */
+ public CreateProtectionContainerInputProperties withProviderSpecificInput(List providerSpecificInput) {
+ this.providerSpecificInput = providerSpecificInput;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInput.java
new file mode 100644
index 0000000000000..a2bfdd0d5bf90
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Configure pairing input.
+ */
+public class CreateProtectionContainerMappingInput {
+ /**
+ * Configure protection input properties.
+ */
+ @JsonProperty(value = "properties")
+ private CreateProtectionContainerMappingInputProperties properties;
+
+ /**
+ * Get configure protection input properties.
+ *
+ * @return the properties value
+ */
+ public CreateProtectionContainerMappingInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set configure protection input properties.
+ *
+ * @param properties the properties value to set
+ * @return the CreateProtectionContainerMappingInput object itself.
+ */
+ public CreateProtectionContainerMappingInput withProperties(CreateProtectionContainerMappingInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInputProperties.java
new file mode 100644
index 0000000000000..145feeea9dd9b
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateProtectionContainerMappingInputProperties.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Configure pairing input properties.
+ */
+public class CreateProtectionContainerMappingInputProperties {
+ /**
+ * The target unique protection container name.
+ */
+ @JsonProperty(value = "targetProtectionContainerId")
+ private String targetProtectionContainerId;
+
+ /**
+ * Applicable policy.
+ */
+ @JsonProperty(value = "PolicyId")
+ private String policyId;
+
+ /**
+ * Provider specific input for pairing.
+ */
+ @JsonProperty(value = "providerSpecificInput")
+ private ReplicationProviderSpecificContainerMappingInput providerSpecificInput;
+
+ /**
+ * Get the target unique protection container name.
+ *
+ * @return the targetProtectionContainerId value
+ */
+ public String targetProtectionContainerId() {
+ return this.targetProtectionContainerId;
+ }
+
+ /**
+ * Set the target unique protection container name.
+ *
+ * @param targetProtectionContainerId the targetProtectionContainerId value to set
+ * @return the CreateProtectionContainerMappingInputProperties object itself.
+ */
+ public CreateProtectionContainerMappingInputProperties withTargetProtectionContainerId(String targetProtectionContainerId) {
+ this.targetProtectionContainerId = targetProtectionContainerId;
+ return this;
+ }
+
+ /**
+ * Get applicable policy.
+ *
+ * @return the policyId value
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set applicable policy.
+ *
+ * @param policyId the policyId value to set
+ * @return the CreateProtectionContainerMappingInputProperties object itself.
+ */
+ public CreateProtectionContainerMappingInputProperties withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+ /**
+ * Get provider specific input for pairing.
+ *
+ * @return the providerSpecificInput value
+ */
+ public ReplicationProviderSpecificContainerMappingInput providerSpecificInput() {
+ return this.providerSpecificInput;
+ }
+
+ /**
+ * Set provider specific input for pairing.
+ *
+ * @param providerSpecificInput the providerSpecificInput value to set
+ * @return the CreateProtectionContainerMappingInputProperties object itself.
+ */
+ public CreateProtectionContainerMappingInputProperties withProviderSpecificInput(ReplicationProviderSpecificContainerMappingInput providerSpecificInput) {
+ this.providerSpecificInput = providerSpecificInput;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInput.java
new file mode 100644
index 0000000000000..7219e4db43963
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Create recovery plan input class.
+ */
+public class CreateRecoveryPlanInput {
+ /**
+ * Recovery plan creation properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private CreateRecoveryPlanInputProperties properties;
+
+ /**
+ * Get recovery plan creation properties.
+ *
+ * @return the properties value
+ */
+ public CreateRecoveryPlanInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set recovery plan creation properties.
+ *
+ * @param properties the properties value to set
+ * @return the CreateRecoveryPlanInput object itself.
+ */
+ public CreateRecoveryPlanInput withProperties(CreateRecoveryPlanInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInputProperties.java
new file mode 100644
index 0000000000000..e3a73277b06c0
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CreateRecoveryPlanInputProperties.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Recovery plan creation properties.
+ */
+public class CreateRecoveryPlanInputProperties {
+ /**
+ * The primary fabric Id.
+ */
+ @JsonProperty(value = "primaryFabricId", required = true)
+ private String primaryFabricId;
+
+ /**
+ * The recovery fabric Id.
+ */
+ @JsonProperty(value = "recoveryFabricId", required = true)
+ private String recoveryFabricId;
+
+ /**
+ * The failover deployment model. Possible values include: 'NotApplicable',
+ * 'Classic', 'ResourceManager'.
+ */
+ @JsonProperty(value = "failoverDeploymentModel")
+ private FailoverDeploymentModel failoverDeploymentModel;
+
+ /**
+ * The recovery plan groups.
+ */
+ @JsonProperty(value = "groups", required = true)
+ private List groups;
+
+ /**
+ * Get the primary fabric Id.
+ *
+ * @return the primaryFabricId value
+ */
+ public String primaryFabricId() {
+ return this.primaryFabricId;
+ }
+
+ /**
+ * Set the primary fabric Id.
+ *
+ * @param primaryFabricId the primaryFabricId value to set
+ * @return the CreateRecoveryPlanInputProperties object itself.
+ */
+ public CreateRecoveryPlanInputProperties withPrimaryFabricId(String primaryFabricId) {
+ this.primaryFabricId = primaryFabricId;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric Id.
+ *
+ * @return the recoveryFabricId value
+ */
+ public String recoveryFabricId() {
+ return this.recoveryFabricId;
+ }
+
+ /**
+ * Set the recovery fabric Id.
+ *
+ * @param recoveryFabricId the recoveryFabricId value to set
+ * @return the CreateRecoveryPlanInputProperties object itself.
+ */
+ public CreateRecoveryPlanInputProperties withRecoveryFabricId(String recoveryFabricId) {
+ this.recoveryFabricId = recoveryFabricId;
+ return this;
+ }
+
+ /**
+ * Get the failover deployment model. Possible values include: 'NotApplicable', 'Classic', 'ResourceManager'.
+ *
+ * @return the failoverDeploymentModel value
+ */
+ public FailoverDeploymentModel failoverDeploymentModel() {
+ return this.failoverDeploymentModel;
+ }
+
+ /**
+ * Set the failover deployment model. Possible values include: 'NotApplicable', 'Classic', 'ResourceManager'.
+ *
+ * @param failoverDeploymentModel the failoverDeploymentModel value to set
+ * @return the CreateRecoveryPlanInputProperties object itself.
+ */
+ public CreateRecoveryPlanInputProperties withFailoverDeploymentModel(FailoverDeploymentModel failoverDeploymentModel) {
+ this.failoverDeploymentModel = failoverDeploymentModel;
+ return this;
+ }
+
+ /**
+ * Get the recovery plan groups.
+ *
+ * @return the groups value
+ */
+ public List groups() {
+ return this.groups;
+ }
+
+ /**
+ * Set the recovery plan groups.
+ *
+ * @param groups the groups value to set
+ * @return the CreateRecoveryPlanInputProperties object itself.
+ */
+ public CreateRecoveryPlanInputProperties withGroups(List groups) {
+ this.groups = groups;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CurrentScenarioDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CurrentScenarioDetails.java
new file mode 100644
index 0000000000000..70c75c177bf12
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/CurrentScenarioDetails.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Current scenario details of the protected entity.
+ */
+public class CurrentScenarioDetails {
+ /**
+ * Scenario name.
+ */
+ @JsonProperty(value = "scenarioName")
+ private String scenarioName;
+
+ /**
+ * ARM Id of the job being executed.
+ */
+ @JsonProperty(value = "jobId")
+ private String jobId;
+
+ /**
+ * Start time of the workflow.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * Get scenario name.
+ *
+ * @return the scenarioName value
+ */
+ public String scenarioName() {
+ return this.scenarioName;
+ }
+
+ /**
+ * Set scenario name.
+ *
+ * @param scenarioName the scenarioName value to set
+ * @return the CurrentScenarioDetails object itself.
+ */
+ public CurrentScenarioDetails withScenarioName(String scenarioName) {
+ this.scenarioName = scenarioName;
+ return this;
+ }
+
+ /**
+ * Get aRM Id of the job being executed.
+ *
+ * @return the jobId value
+ */
+ public String jobId() {
+ return this.jobId;
+ }
+
+ /**
+ * Set aRM Id of the job being executed.
+ *
+ * @param jobId the jobId value to set
+ * @return the CurrentScenarioDetails object itself.
+ */
+ public CurrentScenarioDetails withJobId(String jobId) {
+ this.jobId = jobId;
+ return this;
+ }
+
+ /**
+ * Get start time of the workflow.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set start time of the workflow.
+ *
+ * @param startTime the startTime value to set
+ * @return the CurrentScenarioDetails object itself.
+ */
+ public CurrentScenarioDetails withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataStore.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataStore.java
new file mode 100644
index 0000000000000..5cbc507d2f4fb
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataStore.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The data store details of the MT.
+ */
+public class DataStore {
+ /**
+ * The symbolic name of data store.
+ */
+ @JsonProperty(value = "symbolicName")
+ private String symbolicName;
+
+ /**
+ * The uuid of data store.
+ */
+ @JsonProperty(value = "uuid")
+ private String uuid;
+
+ /**
+ * The capacity of data store in GBs.
+ */
+ @JsonProperty(value = "capacity")
+ private String capacity;
+
+ /**
+ * The free space of data store in GBs.
+ */
+ @JsonProperty(value = "freeSpace")
+ private String freeSpace;
+
+ /**
+ * The type of data store.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get the symbolic name of data store.
+ *
+ * @return the symbolicName value
+ */
+ public String symbolicName() {
+ return this.symbolicName;
+ }
+
+ /**
+ * Set the symbolic name of data store.
+ *
+ * @param symbolicName the symbolicName value to set
+ * @return the DataStore object itself.
+ */
+ public DataStore withSymbolicName(String symbolicName) {
+ this.symbolicName = symbolicName;
+ return this;
+ }
+
+ /**
+ * Get the uuid of data store.
+ *
+ * @return the uuid value
+ */
+ public String uuid() {
+ return this.uuid;
+ }
+
+ /**
+ * Set the uuid of data store.
+ *
+ * @param uuid the uuid value to set
+ * @return the DataStore object itself.
+ */
+ public DataStore withUuid(String uuid) {
+ this.uuid = uuid;
+ return this;
+ }
+
+ /**
+ * Get the capacity of data store in GBs.
+ *
+ * @return the capacity value
+ */
+ public String capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the capacity of data store in GBs.
+ *
+ * @param capacity the capacity value to set
+ * @return the DataStore object itself.
+ */
+ public DataStore withCapacity(String capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+ /**
+ * Get the free space of data store in GBs.
+ *
+ * @return the freeSpace value
+ */
+ public String freeSpace() {
+ return this.freeSpace;
+ }
+
+ /**
+ * Set the free space of data store in GBs.
+ *
+ * @param freeSpace the freeSpace value to set
+ * @return the DataStore object itself.
+ */
+ public DataStore withFreeSpace(String freeSpace) {
+ this.freeSpace = freeSpace;
+ return this;
+ }
+
+ /**
+ * Get the type of data store.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of data store.
+ *
+ * @param type the type value to set
+ * @return the DataStore object itself.
+ */
+ public DataStore withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataSyncStatus.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataSyncStatus.java
new file mode 100644
index 0000000000000..eb2972cacc595
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DataSyncStatus.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DataSyncStatus.
+ */
+public enum DataSyncStatus {
+ /** Enum value ForDownTime. */
+ FOR_DOWN_TIME("ForDownTime"),
+
+ /** Enum value ForSynchronization. */
+ FOR_SYNCHRONIZATION("ForSynchronization");
+
+ /** The actual serialized value for a DataSyncStatus instance. */
+ private String value;
+
+ DataSyncStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DataSyncStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DataSyncStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DataSyncStatus fromString(String value) {
+ DataSyncStatus[] items = DataSyncStatus.values();
+ for (DataSyncStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInput.java
new file mode 100644
index 0000000000000..67d9fc19b4fda
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Disable protection input.
+ */
+public class DisableProtectionInput {
+ /**
+ * Disable protection input properties.
+ */
+ @JsonProperty(value = "properties")
+ private DisableProtectionInputProperties properties;
+
+ /**
+ * Get disable protection input properties.
+ *
+ * @return the properties value
+ */
+ public DisableProtectionInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set disable protection input properties.
+ *
+ * @param properties the properties value to set
+ * @return the DisableProtectionInput object itself.
+ */
+ public DisableProtectionInput withProperties(DisableProtectionInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInputProperties.java
new file mode 100644
index 0000000000000..804f2bc3f819a
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionInputProperties.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Disable protection input properties.
+ */
+public class DisableProtectionInputProperties {
+ /**
+ * Disable protection reason. It can have values
+ * NotSpecified/MigrationComplete. Possible values include: 'NotSpecified',
+ * 'MigrationComplete'.
+ */
+ @JsonProperty(value = "disableProtectionReason")
+ private DisableProtectionReason disableProtectionReason;
+
+ /**
+ * Replication provider specific input.
+ */
+ @JsonProperty(value = "replicationProviderInput")
+ private DisableProtectionProviderSpecificInput replicationProviderInput;
+
+ /**
+ * Get disable protection reason. It can have values NotSpecified/MigrationComplete. Possible values include: 'NotSpecified', 'MigrationComplete'.
+ *
+ * @return the disableProtectionReason value
+ */
+ public DisableProtectionReason disableProtectionReason() {
+ return this.disableProtectionReason;
+ }
+
+ /**
+ * Set disable protection reason. It can have values NotSpecified/MigrationComplete. Possible values include: 'NotSpecified', 'MigrationComplete'.
+ *
+ * @param disableProtectionReason the disableProtectionReason value to set
+ * @return the DisableProtectionInputProperties object itself.
+ */
+ public DisableProtectionInputProperties withDisableProtectionReason(DisableProtectionReason disableProtectionReason) {
+ this.disableProtectionReason = disableProtectionReason;
+ return this;
+ }
+
+ /**
+ * Get replication provider specific input.
+ *
+ * @return the replicationProviderInput value
+ */
+ public DisableProtectionProviderSpecificInput replicationProviderInput() {
+ return this.replicationProviderInput;
+ }
+
+ /**
+ * Set replication provider specific input.
+ *
+ * @param replicationProviderInput the replicationProviderInput value to set
+ * @return the DisableProtectionInputProperties object itself.
+ */
+ public DisableProtectionInputProperties withReplicationProviderInput(DisableProtectionProviderSpecificInput replicationProviderInput) {
+ this.replicationProviderInput = replicationProviderInput;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionProviderSpecificInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionProviderSpecificInput.java
new file mode 100644
index 0000000000000..24e4cf99db4df
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionProviderSpecificInput.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Disable protection provider specific input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("DisableProtectionProviderSpecificInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "InMage", value = InMageDisableProtectionProviderSpecificInput.class)
+})
+public class DisableProtectionProviderSpecificInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionReason.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionReason.java
new file mode 100644
index 0000000000000..fc5e712d742a2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DisableProtectionReason.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DisableProtectionReason.
+ */
+public enum DisableProtectionReason {
+ /** Enum value NotSpecified. */
+ NOT_SPECIFIED("NotSpecified"),
+
+ /** Enum value MigrationComplete. */
+ MIGRATION_COMPLETE("MigrationComplete");
+
+ /** The actual serialized value for a DisableProtectionReason instance. */
+ private String value;
+
+ DisableProtectionReason(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DisableProtectionReason instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DisableProtectionReason object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DisableProtectionReason fromString(String value) {
+ DisableProtectionReason[] items = DisableProtectionReason.values();
+ for (DisableProtectionReason item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequest.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequest.java
new file mode 100644
index 0000000000000..7aa04629f834d
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Request to add a physical machine as a protectable item in a container.
+ */
+public class DiscoverProtectableItemRequest {
+ /**
+ * The properties of a discover protectable item request.
+ */
+ @JsonProperty(value = "properties")
+ private DiscoverProtectableItemRequestProperties properties;
+
+ /**
+ * Get the properties of a discover protectable item request.
+ *
+ * @return the properties value
+ */
+ public DiscoverProtectableItemRequestProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties of a discover protectable item request.
+ *
+ * @param properties the properties value to set
+ * @return the DiscoverProtectableItemRequest object itself.
+ */
+ public DiscoverProtectableItemRequest withProperties(DiscoverProtectableItemRequestProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequestProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequestProperties.java
new file mode 100644
index 0000000000000..1dad34a13c975
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiscoverProtectableItemRequestProperties.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Discover protectable item properties.
+ */
+public class DiscoverProtectableItemRequestProperties {
+ /**
+ * The friendly name of the physical machine.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The IP address of the physical machine to be discovered.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The OS type on the physical machine.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * Get the friendly name of the physical machine.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the friendly name of the physical machine.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the DiscoverProtectableItemRequestProperties object itself.
+ */
+ public DiscoverProtectableItemRequestProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the IP address of the physical machine to be discovered.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the IP address of the physical machine to be discovered.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the DiscoverProtectableItemRequestProperties object itself.
+ */
+ public DiscoverProtectableItemRequestProperties withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the OS type on the physical machine.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type on the physical machine.
+ *
+ * @param osType the osType value to set
+ * @return the DiscoverProtectableItemRequestProperties object itself.
+ */
+ public DiscoverProtectableItemRequestProperties withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskDetails.java
new file mode 100644
index 0000000000000..6587f0ec975e5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskDetails.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * On-prem disk details data.
+ */
+public class DiskDetails {
+ /**
+ * The hard disk max size in MB.
+ */
+ @JsonProperty(value = "maxSizeMB")
+ private Long maxSizeMB;
+
+ /**
+ * The type of the volume.
+ */
+ @JsonProperty(value = "vhdType")
+ private String vhdType;
+
+ /**
+ * The VHD Id.
+ */
+ @JsonProperty(value = "vhdId")
+ private String vhdId;
+
+ /**
+ * The VHD name.
+ */
+ @JsonProperty(value = "vhdName")
+ private String vhdName;
+
+ /**
+ * Get the hard disk max size in MB.
+ *
+ * @return the maxSizeMB value
+ */
+ public Long maxSizeMB() {
+ return this.maxSizeMB;
+ }
+
+ /**
+ * Set the hard disk max size in MB.
+ *
+ * @param maxSizeMB the maxSizeMB value to set
+ * @return the DiskDetails object itself.
+ */
+ public DiskDetails withMaxSizeMB(Long maxSizeMB) {
+ this.maxSizeMB = maxSizeMB;
+ return this;
+ }
+
+ /**
+ * Get the type of the volume.
+ *
+ * @return the vhdType value
+ */
+ public String vhdType() {
+ return this.vhdType;
+ }
+
+ /**
+ * Set the type of the volume.
+ *
+ * @param vhdType the vhdType value to set
+ * @return the DiskDetails object itself.
+ */
+ public DiskDetails withVhdType(String vhdType) {
+ this.vhdType = vhdType;
+ return this;
+ }
+
+ /**
+ * Get the VHD Id.
+ *
+ * @return the vhdId value
+ */
+ public String vhdId() {
+ return this.vhdId;
+ }
+
+ /**
+ * Set the VHD Id.
+ *
+ * @param vhdId the vhdId value to set
+ * @return the DiskDetails object itself.
+ */
+ public DiskDetails withVhdId(String vhdId) {
+ this.vhdId = vhdId;
+ return this;
+ }
+
+ /**
+ * Get the VHD name.
+ *
+ * @return the vhdName value
+ */
+ public String vhdName() {
+ return this.vhdName;
+ }
+
+ /**
+ * Set the VHD name.
+ *
+ * @param vhdName the vhdName value to set
+ * @return the DiskDetails object itself.
+ */
+ public DiskDetails withVhdName(String vhdName) {
+ this.vhdName = vhdName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskVolumeDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskVolumeDetails.java
new file mode 100644
index 0000000000000..a15a7585cb580
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/DiskVolumeDetails.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Volume details.
+ */
+public class DiskVolumeDetails {
+ /**
+ * The volume label.
+ */
+ @JsonProperty(value = "label")
+ private String label;
+
+ /**
+ * The volume name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get the volume label.
+ *
+ * @return the label value
+ */
+ public String label() {
+ return this.label;
+ }
+
+ /**
+ * Set the volume label.
+ *
+ * @param label the label value to set
+ * @return the DiskVolumeDetails object itself.
+ */
+ public DiskVolumeDetails withLabel(String label) {
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Get the volume name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the volume name.
+ *
+ * @param name the name value to set
+ * @return the DiskVolumeDetails object itself.
+ */
+ public DiskVolumeDetails withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Display.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Display.java
new file mode 100644
index 0000000000000..c26ab8536f56b
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Display.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Contains the localized display information for this particular operation /
+ * action. These value will be used by several clients for (1) custom role
+ * definitions for RBAC; (2) complex query filters for the event service; and
+ * (3) audit history / records for management operations.
+ */
+public class Display {
+ /**
+ * The provider. The localized friendly form of the resource provider name
+ * – it is expected to also include the publisher/company responsible. It
+ * should use Title Casing and begin with "Microsoft" for 1st party
+ * services. e.g. "Microsoft Monitoring Insights" or "Microsoft Compute.".
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The resource. The localized friendly form of the resource related to
+ * this action/operation – it should match the public documentation for the
+ * resource provider. It should use Title Casing. This value should be
+ * unique for a particular URL type (e.g. nested types should *not* reuse
+ * their parent’s display.resource field). e.g. "Virtual Machines" or
+ * "Scheduler Job Collections", or "Virtual Machine VM Sizes" or "Scheduler
+ * Jobs".
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The operation. The localized friendly name for the operation, as it
+ * should be shown to the user. It should be concise (to fit in drop downs)
+ * but clear (i.e. self-documenting). It should use Title Casing.
+ * Prescriptive guidance: Read Create or Update Delete 'ActionName'.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * The description. The localized friendly description for the operation,
+ * as it should be shown to the user. It should be thorough, yet concise –
+ * it will be used in tool tips and detailed views. Prescriptive guidance
+ * for namespaces: Read any 'display.provider' resource Create or Update
+ * any 'display.provider' resource Delete any 'display.provider' resource
+ * Perform any other action on any 'display.provider' resource Prescriptive
+ * guidance for namespaces: Read any 'display.resource' Create or Update
+ * any 'display.resource' Delete any 'display.resource' 'ActionName' any
+ * 'display.resources'.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the provider. The localized friendly form of the resource provider name – it is expected to also include the publisher/company responsible. It should use Title Casing and begin with "Microsoft" for 1st party services. e.g. "Microsoft Monitoring Insights" or "Microsoft Compute.".
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the provider. The localized friendly form of the resource provider name – it is expected to also include the publisher/company responsible. It should use Title Casing and begin with "Microsoft" for 1st party services. e.g. "Microsoft Monitoring Insights" or "Microsoft Compute.".
+ *
+ * @param provider the provider value to set
+ * @return the Display object itself.
+ */
+ public Display withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the resource. The localized friendly form of the resource related to this action/operation – it should match the public documentation for the resource provider. It should use Title Casing. This value should be unique for a particular URL type (e.g. nested types should *not* reuse their parent’s display.resource field). e.g. "Virtual Machines" or "Scheduler Job Collections", or "Virtual Machine VM Sizes" or "Scheduler Jobs".
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the resource. The localized friendly form of the resource related to this action/operation – it should match the public documentation for the resource provider. It should use Title Casing. This value should be unique for a particular URL type (e.g. nested types should *not* reuse their parent’s display.resource field). e.g. "Virtual Machines" or "Scheduler Job Collections", or "Virtual Machine VM Sizes" or "Scheduler Jobs".
+ *
+ * @param resource the resource value to set
+ * @return the Display object itself.
+ */
+ public Display withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the operation. The localized friendly name for the operation, as it should be shown to the user. It should be concise (to fit in drop downs) but clear (i.e. self-documenting). It should use Title Casing. Prescriptive guidance: Read Create or Update Delete 'ActionName'.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the operation. The localized friendly name for the operation, as it should be shown to the user. It should be concise (to fit in drop downs) but clear (i.e. self-documenting). It should use Title Casing. Prescriptive guidance: Read Create or Update Delete 'ActionName'.
+ *
+ * @param operation the operation value to set
+ * @return the Display object itself.
+ */
+ public Display withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get the description. The localized friendly description for the operation, as it should be shown to the user. It should be thorough, yet concise – it will be used in tool tips and detailed views. Prescriptive guidance for namespaces: Read any 'display.provider' resource Create or Update any 'display.provider' resource Delete any 'display.provider' resource Perform any other action on any 'display.provider' resource Prescriptive guidance for namespaces: Read any 'display.resource' Create or Update any 'display.resource' Delete any 'display.resource' 'ActionName' any 'display.resources'.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description. The localized friendly description for the operation, as it should be shown to the user. It should be thorough, yet concise – it will be used in tool tips and detailed views. Prescriptive guidance for namespaces: Read any 'display.provider' resource Create or Update any 'display.provider' resource Delete any 'display.provider' resource Perform any other action on any 'display.provider' resource Prescriptive guidance for namespaces: Read any 'display.resource' Create or Update any 'display.resource' Delete any 'display.resource' 'ActionName' any 'display.resources'.
+ *
+ * @param description the description value to set
+ * @return the Display object itself.
+ */
+ public Display withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInput.java
new file mode 100644
index 0000000000000..51e1fed7d5b54
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Enable protection input.
+ */
+public class EnableProtectionInput {
+ /**
+ * Enable protection input properties.
+ */
+ @JsonProperty(value = "properties")
+ private EnableProtectionInputProperties properties;
+
+ /**
+ * Get enable protection input properties.
+ *
+ * @return the properties value
+ */
+ public EnableProtectionInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set enable protection input properties.
+ *
+ * @param properties the properties value to set
+ * @return the EnableProtectionInput object itself.
+ */
+ public EnableProtectionInput withProperties(EnableProtectionInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInputProperties.java
new file mode 100644
index 0000000000000..7c6a55cb800d6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionInputProperties.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Enable protection input properties.
+ */
+public class EnableProtectionInputProperties {
+ /**
+ * The Policy Id.
+ */
+ @JsonProperty(value = "policyId")
+ private String policyId;
+
+ /**
+ * The protectable item Id.
+ */
+ @JsonProperty(value = "protectableItemId")
+ private String protectableItemId;
+
+ /**
+ * The ReplicationProviderInput. For HyperVReplicaAzure provider, it will
+ * be AzureEnableProtectionInput object. For San provider, it will be
+ * SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can
+ * be null.
+ */
+ @JsonProperty(value = "providerSpecificDetails")
+ private EnableProtectionProviderSpecificInput providerSpecificDetails;
+
+ /**
+ * Get the Policy Id.
+ *
+ * @return the policyId value
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set the Policy Id.
+ *
+ * @param policyId the policyId value to set
+ * @return the EnableProtectionInputProperties object itself.
+ */
+ public EnableProtectionInputProperties withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+ /**
+ * Get the protectable item Id.
+ *
+ * @return the protectableItemId value
+ */
+ public String protectableItemId() {
+ return this.protectableItemId;
+ }
+
+ /**
+ * Set the protectable item Id.
+ *
+ * @param protectableItemId the protectableItemId value to set
+ * @return the EnableProtectionInputProperties object itself.
+ */
+ public EnableProtectionInputProperties withProtectableItemId(String protectableItemId) {
+ this.protectableItemId = protectableItemId;
+ return this;
+ }
+
+ /**
+ * Get the ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null.
+ *
+ * @return the providerSpecificDetails value
+ */
+ public EnableProtectionProviderSpecificInput providerSpecificDetails() {
+ return this.providerSpecificDetails;
+ }
+
+ /**
+ * Set the ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null.
+ *
+ * @param providerSpecificDetails the providerSpecificDetails value to set
+ * @return the EnableProtectionInputProperties object itself.
+ */
+ public EnableProtectionInputProperties withProviderSpecificDetails(EnableProtectionProviderSpecificInput providerSpecificDetails) {
+ this.providerSpecificDetails = providerSpecificDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionProviderSpecificInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionProviderSpecificInput.java
new file mode 100644
index 0000000000000..46aad773918d5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EnableProtectionProviderSpecificInput.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Enable protection provider specific input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("EnableProtectionProviderSpecificInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVReplicaAzure", value = HyperVReplicaAzureEnableProtectionInput.class),
+ @JsonSubTypes.Type(name = "San", value = SanEnableProtectionInput.class),
+ @JsonSubTypes.Type(name = "InMageAzureV2", value = InMageAzureV2EnableProtectionInput.class),
+ @JsonSubTypes.Type(name = "InMage", value = InMageEnableProtectionInput.class),
+ @JsonSubTypes.Type(name = "A2A", value = A2AEnableProtectionInput.class)
+})
+public class EnableProtectionProviderSpecificInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EncryptionDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EncryptionDetails.java
new file mode 100644
index 0000000000000..458f986f7ade4
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EncryptionDetails.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Encryption details for the fabric.
+ */
+public class EncryptionDetails {
+ /**
+ * The key encryption key state for the Vmm.
+ */
+ @JsonProperty(value = "kekState")
+ private String kekState;
+
+ /**
+ * The key encryption key certificate thumbprint.
+ */
+ @JsonProperty(value = "kekCertThumbprint")
+ private String kekCertThumbprint;
+
+ /**
+ * The key encryption key certificate expiry date.
+ */
+ @JsonProperty(value = "kekCertExpiryDate")
+ private DateTime kekCertExpiryDate;
+
+ /**
+ * Get the key encryption key state for the Vmm.
+ *
+ * @return the kekState value
+ */
+ public String kekState() {
+ return this.kekState;
+ }
+
+ /**
+ * Set the key encryption key state for the Vmm.
+ *
+ * @param kekState the kekState value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withKekState(String kekState) {
+ this.kekState = kekState;
+ return this;
+ }
+
+ /**
+ * Get the key encryption key certificate thumbprint.
+ *
+ * @return the kekCertThumbprint value
+ */
+ public String kekCertThumbprint() {
+ return this.kekCertThumbprint;
+ }
+
+ /**
+ * Set the key encryption key certificate thumbprint.
+ *
+ * @param kekCertThumbprint the kekCertThumbprint value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withKekCertThumbprint(String kekCertThumbprint) {
+ this.kekCertThumbprint = kekCertThumbprint;
+ return this;
+ }
+
+ /**
+ * Get the key encryption key certificate expiry date.
+ *
+ * @return the kekCertExpiryDate value
+ */
+ public DateTime kekCertExpiryDate() {
+ return this.kekCertExpiryDate;
+ }
+
+ /**
+ * Set the key encryption key certificate expiry date.
+ *
+ * @param kekCertExpiryDate the kekCertExpiryDate value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withKekCertExpiryDate(DateTime kekCertExpiryDate) {
+ this.kekCertExpiryDate = kekCertExpiryDate;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Event.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Event.java
new file mode 100644
index 0000000000000..52f71b0588085
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Event.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.EventInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing Event.
+ */
+public interface Event extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ EventProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProperties.java
new file mode 100644
index 0000000000000..765990eee6ba3
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProperties.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a monitoring event.
+ */
+public class EventProperties {
+ /**
+ * The Id of the monitoring event.
+ */
+ @JsonProperty(value = "eventCode")
+ private String eventCode;
+
+ /**
+ * The event name.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * The type of the event. for example: VM Health, Server Health, Job
+ * Failure etc.
+ */
+ @JsonProperty(value = "eventType")
+ private String eventType;
+
+ /**
+ * The friendly name of the source of the event on which it is raised (for
+ * example, VM, VMM etc).
+ */
+ @JsonProperty(value = "affectedObjectFriendlyName")
+ private String affectedObjectFriendlyName;
+
+ /**
+ * The severity of the event.
+ */
+ @JsonProperty(value = "severity")
+ private String severity;
+
+ /**
+ * The time of occurrence of the event.
+ */
+ @JsonProperty(value = "timeOfOccurrence")
+ private DateTime timeOfOccurrence;
+
+ /**
+ * The ARM ID of the fabric.
+ */
+ @JsonProperty(value = "fabricId")
+ private String fabricId;
+
+ /**
+ * The provider specific settings.
+ */
+ @JsonProperty(value = "providerSpecificDetails")
+ private EventProviderSpecificDetails providerSpecificDetails;
+
+ /**
+ * The event specific settings.
+ */
+ @JsonProperty(value = "eventSpecificDetails")
+ private EventSpecificDetails eventSpecificDetails;
+
+ /**
+ * The list of errors / warnings capturing details associated with the
+ * issue(s).
+ */
+ @JsonProperty(value = "healthErrors")
+ private List healthErrors;
+
+ /**
+ * Get the Id of the monitoring event.
+ *
+ * @return the eventCode value
+ */
+ public String eventCode() {
+ return this.eventCode;
+ }
+
+ /**
+ * Set the Id of the monitoring event.
+ *
+ * @param eventCode the eventCode value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withEventCode(String eventCode) {
+ this.eventCode = eventCode;
+ return this;
+ }
+
+ /**
+ * Get the event name.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the event name.
+ *
+ * @param description the description value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the type of the event. for example: VM Health, Server Health, Job Failure etc.
+ *
+ * @return the eventType value
+ */
+ public String eventType() {
+ return this.eventType;
+ }
+
+ /**
+ * Set the type of the event. for example: VM Health, Server Health, Job Failure etc.
+ *
+ * @param eventType the eventType value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withEventType(String eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get the friendly name of the source of the event on which it is raised (for example, VM, VMM etc).
+ *
+ * @return the affectedObjectFriendlyName value
+ */
+ public String affectedObjectFriendlyName() {
+ return this.affectedObjectFriendlyName;
+ }
+
+ /**
+ * Set the friendly name of the source of the event on which it is raised (for example, VM, VMM etc).
+ *
+ * @param affectedObjectFriendlyName the affectedObjectFriendlyName value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withAffectedObjectFriendlyName(String affectedObjectFriendlyName) {
+ this.affectedObjectFriendlyName = affectedObjectFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the severity of the event.
+ *
+ * @return the severity value
+ */
+ public String severity() {
+ return this.severity;
+ }
+
+ /**
+ * Set the severity of the event.
+ *
+ * @param severity the severity value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withSeverity(String severity) {
+ this.severity = severity;
+ return this;
+ }
+
+ /**
+ * Get the time of occurrence of the event.
+ *
+ * @return the timeOfOccurrence value
+ */
+ public DateTime timeOfOccurrence() {
+ return this.timeOfOccurrence;
+ }
+
+ /**
+ * Set the time of occurrence of the event.
+ *
+ * @param timeOfOccurrence the timeOfOccurrence value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withTimeOfOccurrence(DateTime timeOfOccurrence) {
+ this.timeOfOccurrence = timeOfOccurrence;
+ return this;
+ }
+
+ /**
+ * Get the ARM ID of the fabric.
+ *
+ * @return the fabricId value
+ */
+ public String fabricId() {
+ return this.fabricId;
+ }
+
+ /**
+ * Set the ARM ID of the fabric.
+ *
+ * @param fabricId the fabricId value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withFabricId(String fabricId) {
+ this.fabricId = fabricId;
+ return this;
+ }
+
+ /**
+ * Get the provider specific settings.
+ *
+ * @return the providerSpecificDetails value
+ */
+ public EventProviderSpecificDetails providerSpecificDetails() {
+ return this.providerSpecificDetails;
+ }
+
+ /**
+ * Set the provider specific settings.
+ *
+ * @param providerSpecificDetails the providerSpecificDetails value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withProviderSpecificDetails(EventProviderSpecificDetails providerSpecificDetails) {
+ this.providerSpecificDetails = providerSpecificDetails;
+ return this;
+ }
+
+ /**
+ * Get the event specific settings.
+ *
+ * @return the eventSpecificDetails value
+ */
+ public EventSpecificDetails eventSpecificDetails() {
+ return this.eventSpecificDetails;
+ }
+
+ /**
+ * Set the event specific settings.
+ *
+ * @param eventSpecificDetails the eventSpecificDetails value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withEventSpecificDetails(EventSpecificDetails eventSpecificDetails) {
+ this.eventSpecificDetails = eventSpecificDetails;
+ return this;
+ }
+
+ /**
+ * Get the list of errors / warnings capturing details associated with the issue(s).
+ *
+ * @return the healthErrors value
+ */
+ public List healthErrors() {
+ return this.healthErrors;
+ }
+
+ /**
+ * Set the list of errors / warnings capturing details associated with the issue(s).
+ *
+ * @param healthErrors the healthErrors value to set
+ * @return the EventProperties object itself.
+ */
+ public EventProperties withHealthErrors(List healthErrors) {
+ this.healthErrors = healthErrors;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProviderSpecificDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProviderSpecificDetails.java
new file mode 100644
index 0000000000000..53eb53e3166da
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventProviderSpecificDetails.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Model class for provider specific details for an event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("EventProviderSpecificDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVReplicaBaseEventDetails", value = HyperVReplicaBaseEventDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012", value = HyperVReplica2012EventDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012R2", value = HyperVReplica2012R2EventDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplicaAzure", value = HyperVReplicaAzureEventDetails.class),
+ @JsonSubTypes.Type(name = "A2A", value = A2AEventDetails.class),
+ @JsonSubTypes.Type(name = "InMageAzureV2", value = InMageAzureV2EventDetails.class)
+})
+public class EventProviderSpecificDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventQueryParameter.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventQueryParameter.java
new file mode 100644
index 0000000000000..e51ea7b289cea
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventQueryParameter.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Implements the event query parameter.
+ */
+public class EventQueryParameter {
+ /**
+ * The source id of the events to be queried.
+ */
+ @JsonProperty(value = "EventCode")
+ private String eventCode;
+
+ /**
+ * The severity of the events to be queried.
+ */
+ @JsonProperty(value = "Severity")
+ private String severity;
+
+ /**
+ * The type of the events to be queried.
+ */
+ @JsonProperty(value = "EventType")
+ private String eventType;
+
+ /**
+ * The affected object server id of the events to be queried.
+ */
+ @JsonProperty(value = "FabricName")
+ private String fabricName;
+
+ /**
+ * The affected object name of the events to be queried.
+ */
+ @JsonProperty(value = "AffectedObjectFriendlyName")
+ private String affectedObjectFriendlyName;
+
+ /**
+ * The start time of the time range within which the events are to be
+ * queried.
+ */
+ @JsonProperty(value = "StartTime")
+ private DateTime startTime;
+
+ /**
+ * The end time of the time range within which the events are to be
+ * queried.
+ */
+ @JsonProperty(value = "EndTime")
+ private DateTime endTime;
+
+ /**
+ * Get the source id of the events to be queried.
+ *
+ * @return the eventCode value
+ */
+ public String eventCode() {
+ return this.eventCode;
+ }
+
+ /**
+ * Set the source id of the events to be queried.
+ *
+ * @param eventCode the eventCode value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withEventCode(String eventCode) {
+ this.eventCode = eventCode;
+ return this;
+ }
+
+ /**
+ * Get the severity of the events to be queried.
+ *
+ * @return the severity value
+ */
+ public String severity() {
+ return this.severity;
+ }
+
+ /**
+ * Set the severity of the events to be queried.
+ *
+ * @param severity the severity value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withSeverity(String severity) {
+ this.severity = severity;
+ return this;
+ }
+
+ /**
+ * Get the type of the events to be queried.
+ *
+ * @return the eventType value
+ */
+ public String eventType() {
+ return this.eventType;
+ }
+
+ /**
+ * Set the type of the events to be queried.
+ *
+ * @param eventType the eventType value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withEventType(String eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get the affected object server id of the events to be queried.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the affected object server id of the events to be queried.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the affected object name of the events to be queried.
+ *
+ * @return the affectedObjectFriendlyName value
+ */
+ public String affectedObjectFriendlyName() {
+ return this.affectedObjectFriendlyName;
+ }
+
+ /**
+ * Set the affected object name of the events to be queried.
+ *
+ * @param affectedObjectFriendlyName the affectedObjectFriendlyName value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withAffectedObjectFriendlyName(String affectedObjectFriendlyName) {
+ this.affectedObjectFriendlyName = affectedObjectFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the start time of the time range within which the events are to be queried.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the start time of the time range within which the events are to be queried.
+ *
+ * @param startTime the startTime value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the end time of the time range within which the events are to be queried.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the end time of the time range within which the events are to be queried.
+ *
+ * @param endTime the endTime value to set
+ * @return the EventQueryParameter object itself.
+ */
+ public EventQueryParameter withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventSpecificDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventSpecificDetails.java
new file mode 100644
index 0000000000000..105f3a2f28dc7
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/EventSpecificDetails.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Model class for event specific details for an event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("EventSpecificDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "JobStatus", value = JobStatusEventDetails.class)
+})
+public class EventSpecificDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ExportJobDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ExportJobDetails.java
new file mode 100644
index 0000000000000..3ab33601a79fb
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ExportJobDetails.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents details for export jobs workflow.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("ExportJobDetails")
+public class ExportJobDetails extends JobDetails {
+ /**
+ * BlobUri of the exported jobs.
+ */
+ @JsonProperty(value = "blobUri")
+ private String blobUri;
+
+ /**
+ * The sas token to access blob.
+ */
+ @JsonProperty(value = "sasToken")
+ private String sasToken;
+
+ /**
+ * Get blobUri of the exported jobs.
+ *
+ * @return the blobUri value
+ */
+ public String blobUri() {
+ return this.blobUri;
+ }
+
+ /**
+ * Set blobUri of the exported jobs.
+ *
+ * @param blobUri the blobUri value to set
+ * @return the ExportJobDetails object itself.
+ */
+ public ExportJobDetails withBlobUri(String blobUri) {
+ this.blobUri = blobUri;
+ return this;
+ }
+
+ /**
+ * Get the sas token to access blob.
+ *
+ * @return the sasToken value
+ */
+ public String sasToken() {
+ return this.sasToken;
+ }
+
+ /**
+ * Set the sas token to access blob.
+ *
+ * @param sasToken the sasToken value to set
+ * @return the ExportJobDetails object itself.
+ */
+ public ExportJobDetails withSasToken(String sasToken) {
+ this.sasToken = sasToken;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Fabric.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Fabric.java
new file mode 100644
index 0000000000000..b87ff289e9c2e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Fabric.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.FabricInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing Fabric.
+ */
+public interface Fabric extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ FabricProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Fabric definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVault, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Fabric definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Fabric definition.
+ */
+ interface Blank extends WithVault {
+ }
+
+ /**
+ * The stage of the fabric definition allowing to specify Vault.
+ */
+ interface WithVault {
+ /**
+ * Specifies .
+ * @return the next definition stage
+ */
+ WithProperties withExistingVault();
+ }
+
+ /**
+ * The stage of the fabric definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Fabric creation input
+ * @return the next definition stage
+ */
+ WithCreate withProperties(FabricCreationInputProperties properties);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Fabric update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of Fabric update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the fabric update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Fabric creation input
+ * @return the next update stage
+ */
+ Update withProperties(FabricCreationInputProperties properties);
+ }
+
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInput.java
new file mode 100644
index 0000000000000..61024d9fe6f73
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Site details provided during the time of site creation.
+ */
+public class FabricCreationInput {
+ /**
+ * Fabric creation input.
+ */
+ @JsonProperty(value = "properties")
+ private FabricCreationInputProperties properties;
+
+ /**
+ * Get fabric creation input.
+ *
+ * @return the properties value
+ */
+ public FabricCreationInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set fabric creation input.
+ *
+ * @param properties the properties value to set
+ * @return the FabricCreationInput object itself.
+ */
+ public FabricCreationInput withProperties(FabricCreationInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInputProperties.java
new file mode 100644
index 0000000000000..ed44e8c68fb15
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricCreationInputProperties.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of site details provided during the time of site creation.
+ */
+public class FabricCreationInputProperties {
+ /**
+ * Fabric provider specific creation input.
+ */
+ @JsonProperty(value = "customDetails")
+ private FabricSpecificCreationInput customDetails;
+
+ /**
+ * Get fabric provider specific creation input.
+ *
+ * @return the customDetails value
+ */
+ public FabricSpecificCreationInput customDetails() {
+ return this.customDetails;
+ }
+
+ /**
+ * Set fabric provider specific creation input.
+ *
+ * @param customDetails the customDetails value to set
+ * @return the FabricCreationInputProperties object itself.
+ */
+ public FabricCreationInputProperties withCustomDetails(FabricSpecificCreationInput customDetails) {
+ this.customDetails = customDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricProperties.java
new file mode 100644
index 0000000000000..619ff8fa1643f
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricProperties.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Fabric properties.
+ */
+public class FabricProperties {
+ /**
+ * Friendly name of the fabric.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Encryption details for the fabric.
+ */
+ @JsonProperty(value = "encryptionDetails")
+ private EncryptionDetails encryptionDetails;
+
+ /**
+ * Rollover encryption details for the fabric.
+ */
+ @JsonProperty(value = "rolloverEncryptionDetails")
+ private EncryptionDetails rolloverEncryptionDetails;
+
+ /**
+ * Dra Registration Id.
+ */
+ @JsonProperty(value = "internalIdentifier")
+ private String internalIdentifier;
+
+ /**
+ * BCDR state of the fabric.
+ */
+ @JsonProperty(value = "bcdrState")
+ private String bcdrState;
+
+ /**
+ * Fabric specific settings.
+ */
+ @JsonProperty(value = "customDetails")
+ private FabricSpecificDetails customDetails;
+
+ /**
+ * Fabric health error details.
+ */
+ @JsonProperty(value = "healthErrorDetails")
+ private List healthErrorDetails;
+
+ /**
+ * Health of fabric.
+ */
+ @JsonProperty(value = "health")
+ private String health;
+
+ /**
+ * Get friendly name of the fabric.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the fabric.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get encryption details for the fabric.
+ *
+ * @return the encryptionDetails value
+ */
+ public EncryptionDetails encryptionDetails() {
+ return this.encryptionDetails;
+ }
+
+ /**
+ * Set encryption details for the fabric.
+ *
+ * @param encryptionDetails the encryptionDetails value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withEncryptionDetails(EncryptionDetails encryptionDetails) {
+ this.encryptionDetails = encryptionDetails;
+ return this;
+ }
+
+ /**
+ * Get rollover encryption details for the fabric.
+ *
+ * @return the rolloverEncryptionDetails value
+ */
+ public EncryptionDetails rolloverEncryptionDetails() {
+ return this.rolloverEncryptionDetails;
+ }
+
+ /**
+ * Set rollover encryption details for the fabric.
+ *
+ * @param rolloverEncryptionDetails the rolloverEncryptionDetails value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withRolloverEncryptionDetails(EncryptionDetails rolloverEncryptionDetails) {
+ this.rolloverEncryptionDetails = rolloverEncryptionDetails;
+ return this;
+ }
+
+ /**
+ * Get dra Registration Id.
+ *
+ * @return the internalIdentifier value
+ */
+ public String internalIdentifier() {
+ return this.internalIdentifier;
+ }
+
+ /**
+ * Set dra Registration Id.
+ *
+ * @param internalIdentifier the internalIdentifier value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withInternalIdentifier(String internalIdentifier) {
+ this.internalIdentifier = internalIdentifier;
+ return this;
+ }
+
+ /**
+ * Get bCDR state of the fabric.
+ *
+ * @return the bcdrState value
+ */
+ public String bcdrState() {
+ return this.bcdrState;
+ }
+
+ /**
+ * Set bCDR state of the fabric.
+ *
+ * @param bcdrState the bcdrState value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withBcdrState(String bcdrState) {
+ this.bcdrState = bcdrState;
+ return this;
+ }
+
+ /**
+ * Get fabric specific settings.
+ *
+ * @return the customDetails value
+ */
+ public FabricSpecificDetails customDetails() {
+ return this.customDetails;
+ }
+
+ /**
+ * Set fabric specific settings.
+ *
+ * @param customDetails the customDetails value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withCustomDetails(FabricSpecificDetails customDetails) {
+ this.customDetails = customDetails;
+ return this;
+ }
+
+ /**
+ * Get fabric health error details.
+ *
+ * @return the healthErrorDetails value
+ */
+ public List healthErrorDetails() {
+ return this.healthErrorDetails;
+ }
+
+ /**
+ * Set fabric health error details.
+ *
+ * @param healthErrorDetails the healthErrorDetails value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withHealthErrorDetails(List healthErrorDetails) {
+ this.healthErrorDetails = healthErrorDetails;
+ return this;
+ }
+
+ /**
+ * Get health of fabric.
+ *
+ * @return the health value
+ */
+ public String health() {
+ return this.health;
+ }
+
+ /**
+ * Set health of fabric.
+ *
+ * @param health the health value to set
+ * @return the FabricProperties object itself.
+ */
+ public FabricProperties withHealth(String health) {
+ this.health = health;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricReplicationGroupTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricReplicationGroupTaskDetails.java
new file mode 100644
index 0000000000000..8d907e7970638
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricReplicationGroupTaskDetails.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents the fabric replication group task details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FabricReplicationGroupTaskDetails")
+public class FabricReplicationGroupTaskDetails extends TaskTypeDetails {
+ /**
+ * The skipped reason.
+ */
+ @JsonProperty(value = "skippedReason")
+ private String skippedReason;
+
+ /**
+ * The skipped reason string.
+ */
+ @JsonProperty(value = "skippedReasonString")
+ private String skippedReasonString;
+
+ /**
+ * The job entity.
+ */
+ @JsonProperty(value = "jobTask")
+ private JobEntity jobTask;
+
+ /**
+ * Get the skipped reason.
+ *
+ * @return the skippedReason value
+ */
+ public String skippedReason() {
+ return this.skippedReason;
+ }
+
+ /**
+ * Set the skipped reason.
+ *
+ * @param skippedReason the skippedReason value to set
+ * @return the FabricReplicationGroupTaskDetails object itself.
+ */
+ public FabricReplicationGroupTaskDetails withSkippedReason(String skippedReason) {
+ this.skippedReason = skippedReason;
+ return this;
+ }
+
+ /**
+ * Get the skipped reason string.
+ *
+ * @return the skippedReasonString value
+ */
+ public String skippedReasonString() {
+ return this.skippedReasonString;
+ }
+
+ /**
+ * Set the skipped reason string.
+ *
+ * @param skippedReasonString the skippedReasonString value to set
+ * @return the FabricReplicationGroupTaskDetails object itself.
+ */
+ public FabricReplicationGroupTaskDetails withSkippedReasonString(String skippedReasonString) {
+ this.skippedReasonString = skippedReasonString;
+ return this;
+ }
+
+ /**
+ * Get the job entity.
+ *
+ * @return the jobTask value
+ */
+ public JobEntity jobTask() {
+ return this.jobTask;
+ }
+
+ /**
+ * Set the job entity.
+ *
+ * @param jobTask the jobTask value to set
+ * @return the FabricReplicationGroupTaskDetails object itself.
+ */
+ public FabricReplicationGroupTaskDetails withJobTask(JobEntity jobTask) {
+ this.jobTask = jobTask;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreateNetworkMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreateNetworkMappingInput.java
new file mode 100644
index 0000000000000..3cbbeed48e135
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreateNetworkMappingInput.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Input details specific to fabrics during Network Mapping.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FabricSpecificCreateNetworkMappingInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureToAzure", value = AzureToAzureCreateNetworkMappingInput.class),
+ @JsonSubTypes.Type(name = "VmmToAzure", value = VmmToAzureCreateNetworkMappingInput.class),
+ @JsonSubTypes.Type(name = "VmmToVmm", value = VmmToVmmCreateNetworkMappingInput.class)
+})
+public class FabricSpecificCreateNetworkMappingInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreationInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreationInput.java
new file mode 100644
index 0000000000000..de8352998e1ae
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificCreationInput.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Fabric provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FabricSpecificCreationInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Azure", value = AzureFabricCreationInput.class),
+ @JsonSubTypes.Type(name = "VMwareV2", value = VMwareV2FabricCreationInput.class)
+})
+public class FabricSpecificCreationInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificDetails.java
new file mode 100644
index 0000000000000..bd85c1f99fdeb
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificDetails.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Fabric specific details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FabricSpecificDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Azure", value = AzureFabricSpecificDetails.class),
+ @JsonSubTypes.Type(name = "VMM", value = VmmDetails.class),
+ @JsonSubTypes.Type(name = "HyperVSite", value = HyperVSiteDetails.class),
+ @JsonSubTypes.Type(name = "VMware", value = VMwareDetails.class),
+ @JsonSubTypes.Type(name = "VMwareV2", value = VMwareV2FabricSpecificDetails.class)
+})
+public class FabricSpecificDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificUpdateNetworkMappingInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificUpdateNetworkMappingInput.java
new file mode 100644
index 0000000000000..9171f0bf18d6e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FabricSpecificUpdateNetworkMappingInput.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Input details specific to fabrics during Network Mapping.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FabricSpecificUpdateNetworkMappingInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureToAzure", value = AzureToAzureUpdateNetworkMappingInput.class),
+ @JsonSubTypes.Type(name = "VmmToAzure", value = VmmToAzureUpdateNetworkMappingInput.class),
+ @JsonSubTypes.Type(name = "VmmToVmm", value = VmmToVmmUpdateNetworkMappingInput.class)
+})
+public class FabricSpecificUpdateNetworkMappingInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverDeploymentModel.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverDeploymentModel.java
new file mode 100644
index 0000000000000..3f8206db98357
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverDeploymentModel.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for FailoverDeploymentModel.
+ */
+public enum FailoverDeploymentModel {
+ /** Enum value NotApplicable. */
+ NOT_APPLICABLE("NotApplicable"),
+
+ /** Enum value Classic. */
+ CLASSIC("Classic"),
+
+ /** Enum value ResourceManager. */
+ RESOURCE_MANAGER("ResourceManager");
+
+ /** The actual serialized value for a FailoverDeploymentModel instance. */
+ private String value;
+
+ FailoverDeploymentModel(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a FailoverDeploymentModel instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed FailoverDeploymentModel object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static FailoverDeploymentModel fromString(String value) {
+ FailoverDeploymentModel[] items = FailoverDeploymentModel.values();
+ for (FailoverDeploymentModel item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverJobDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverJobDetails.java
new file mode 100644
index 0000000000000..7efde61d26952
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverJobDetails.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents the details for a failover job.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("FailoverJobDetails")
+public class FailoverJobDetails extends JobDetails {
+ /**
+ * The test VM details.
+ */
+ @JsonProperty(value = "protectedItemDetails")
+ private List protectedItemDetails;
+
+ /**
+ * Get the test VM details.
+ *
+ * @return the protectedItemDetails value
+ */
+ public List protectedItemDetails() {
+ return this.protectedItemDetails;
+ }
+
+ /**
+ * Set the test VM details.
+ *
+ * @param protectedItemDetails the protectedItemDetails value to set
+ * @return the FailoverJobDetails object itself.
+ */
+ public FailoverJobDetails withProtectedItemDetails(List protectedItemDetails) {
+ this.protectedItemDetails = protectedItemDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequest.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequest.java
new file mode 100644
index 0000000000000..47d2d8c8aec90
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Request to failover a process server.
+ */
+public class FailoverProcessServerRequest {
+ /**
+ * The properties of the PS Failover request.
+ */
+ @JsonProperty(value = "properties")
+ private FailoverProcessServerRequestProperties properties;
+
+ /**
+ * Get the properties of the PS Failover request.
+ *
+ * @return the properties value
+ */
+ public FailoverProcessServerRequestProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the properties of the PS Failover request.
+ *
+ * @param properties the properties value to set
+ * @return the FailoverProcessServerRequest object itself.
+ */
+ public FailoverProcessServerRequest withProperties(FailoverProcessServerRequestProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequestProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequestProperties.java
new file mode 100644
index 0000000000000..92026a6ce4faf
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverProcessServerRequestProperties.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the Failover Process Server request.
+ */
+public class FailoverProcessServerRequestProperties {
+ /**
+ * The container identifier.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * The source process server.
+ */
+ @JsonProperty(value = "sourceProcessServerId")
+ private String sourceProcessServerId;
+
+ /**
+ * The new process server.
+ */
+ @JsonProperty(value = "targetProcessServerId")
+ private String targetProcessServerId;
+
+ /**
+ * The VMS to migrate.
+ */
+ @JsonProperty(value = "vmsToMigrate")
+ private List vmsToMigrate;
+
+ /**
+ * A value for failover type. It can be systemlevel/serverlevel.
+ */
+ @JsonProperty(value = "updateType")
+ private String updateType;
+
+ /**
+ * Get the container identifier.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the container identifier.
+ *
+ * @param containerName the containerName value to set
+ * @return the FailoverProcessServerRequestProperties object itself.
+ */
+ public FailoverProcessServerRequestProperties withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the source process server.
+ *
+ * @return the sourceProcessServerId value
+ */
+ public String sourceProcessServerId() {
+ return this.sourceProcessServerId;
+ }
+
+ /**
+ * Set the source process server.
+ *
+ * @param sourceProcessServerId the sourceProcessServerId value to set
+ * @return the FailoverProcessServerRequestProperties object itself.
+ */
+ public FailoverProcessServerRequestProperties withSourceProcessServerId(String sourceProcessServerId) {
+ this.sourceProcessServerId = sourceProcessServerId;
+ return this;
+ }
+
+ /**
+ * Get the new process server.
+ *
+ * @return the targetProcessServerId value
+ */
+ public String targetProcessServerId() {
+ return this.targetProcessServerId;
+ }
+
+ /**
+ * Set the new process server.
+ *
+ * @param targetProcessServerId the targetProcessServerId value to set
+ * @return the FailoverProcessServerRequestProperties object itself.
+ */
+ public FailoverProcessServerRequestProperties withTargetProcessServerId(String targetProcessServerId) {
+ this.targetProcessServerId = targetProcessServerId;
+ return this;
+ }
+
+ /**
+ * Get the VMS to migrate.
+ *
+ * @return the vmsToMigrate value
+ */
+ public List vmsToMigrate() {
+ return this.vmsToMigrate;
+ }
+
+ /**
+ * Set the VMS to migrate.
+ *
+ * @param vmsToMigrate the vmsToMigrate value to set
+ * @return the FailoverProcessServerRequestProperties object itself.
+ */
+ public FailoverProcessServerRequestProperties withVmsToMigrate(List vmsToMigrate) {
+ this.vmsToMigrate = vmsToMigrate;
+ return this;
+ }
+
+ /**
+ * Get a value for failover type. It can be systemlevel/serverlevel.
+ *
+ * @return the updateType value
+ */
+ public String updateType() {
+ return this.updateType;
+ }
+
+ /**
+ * Set a value for failover type. It can be systemlevel/serverlevel.
+ *
+ * @param updateType the updateType value to set
+ * @return the FailoverProcessServerRequestProperties object itself.
+ */
+ public FailoverProcessServerRequestProperties withUpdateType(String updateType) {
+ this.updateType = updateType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverReplicationProtectedItemDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverReplicationProtectedItemDetails.java
new file mode 100644
index 0000000000000..392e5777394c0
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/FailoverReplicationProtectedItemDetails.java
@@ -0,0 +1,252 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Failover details for a replication protected item.
+ */
+public class FailoverReplicationProtectedItemDetails {
+ /**
+ * The name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The friendly name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The test Vm name.
+ */
+ @JsonProperty(value = "testVmName")
+ private String testVmName;
+
+ /**
+ * The test Vm friendly name.
+ */
+ @JsonProperty(value = "testVmFriendlyName")
+ private String testVmFriendlyName;
+
+ /**
+ * The network connection status.
+ */
+ @JsonProperty(value = "networkConnectionStatus")
+ private String networkConnectionStatus;
+
+ /**
+ * The network friendly name.
+ */
+ @JsonProperty(value = "networkFriendlyName")
+ private String networkFriendlyName;
+
+ /**
+ * The network subnet.
+ */
+ @JsonProperty(value = "subnet")
+ private String subnet;
+
+ /**
+ * The recovery point Id.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * The recovery point time.
+ */
+ @JsonProperty(value = "recoveryPointTime")
+ private DateTime recoveryPointTime;
+
+ /**
+ * Get the name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name.
+ *
+ * @param name the name value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the friendly name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the friendly name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the test Vm name.
+ *
+ * @return the testVmName value
+ */
+ public String testVmName() {
+ return this.testVmName;
+ }
+
+ /**
+ * Set the test Vm name.
+ *
+ * @param testVmName the testVmName value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withTestVmName(String testVmName) {
+ this.testVmName = testVmName;
+ return this;
+ }
+
+ /**
+ * Get the test Vm friendly name.
+ *
+ * @return the testVmFriendlyName value
+ */
+ public String testVmFriendlyName() {
+ return this.testVmFriendlyName;
+ }
+
+ /**
+ * Set the test Vm friendly name.
+ *
+ * @param testVmFriendlyName the testVmFriendlyName value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withTestVmFriendlyName(String testVmFriendlyName) {
+ this.testVmFriendlyName = testVmFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the network connection status.
+ *
+ * @return the networkConnectionStatus value
+ */
+ public String networkConnectionStatus() {
+ return this.networkConnectionStatus;
+ }
+
+ /**
+ * Set the network connection status.
+ *
+ * @param networkConnectionStatus the networkConnectionStatus value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withNetworkConnectionStatus(String networkConnectionStatus) {
+ this.networkConnectionStatus = networkConnectionStatus;
+ return this;
+ }
+
+ /**
+ * Get the network friendly name.
+ *
+ * @return the networkFriendlyName value
+ */
+ public String networkFriendlyName() {
+ return this.networkFriendlyName;
+ }
+
+ /**
+ * Set the network friendly name.
+ *
+ * @param networkFriendlyName the networkFriendlyName value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withNetworkFriendlyName(String networkFriendlyName) {
+ this.networkFriendlyName = networkFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the network subnet.
+ *
+ * @return the subnet value
+ */
+ public String subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Set the network subnet.
+ *
+ * @param subnet the subnet value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withSubnet(String subnet) {
+ this.subnet = subnet;
+ return this;
+ }
+
+ /**
+ * Get the recovery point Id.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point Id.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get the recovery point time.
+ *
+ * @return the recoveryPointTime value
+ */
+ public DateTime recoveryPointTime() {
+ return this.recoveryPointTime;
+ }
+
+ /**
+ * Set the recovery point time.
+ *
+ * @param recoveryPointTime the recoveryPointTime value to set
+ * @return the FailoverReplicationProtectedItemDetails object itself.
+ */
+ public FailoverReplicationProtectedItemDetails withRecoveryPointTime(DateTime recoveryPointTime) {
+ this.recoveryPointTime = recoveryPointTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/GroupTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/GroupTaskDetails.java
new file mode 100644
index 0000000000000..efb3dadf56c96
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/GroupTaskDetails.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * This class represents the group task details when parent child relationship
+ * exists in the drill down.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("GroupTaskDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "InlineWorkflowTaskDetails", value = InlineWorkflowTaskDetails.class),
+ @JsonSubTypes.Type(name = "RecoveryPlanGroupTaskDetails", value = RecoveryPlanGroupTaskDetails.class),
+ @JsonSubTypes.Type(name = "RecoveryPlanShutdownGroupTaskDetails", value = RecoveryPlanShutdownGroupTaskDetails.class)
+})
+public class GroupTaskDetails {
+ /**
+ * The child tasks.
+ */
+ @JsonProperty(value = "childTasks")
+ private List childTasks;
+
+ /**
+ * Get the child tasks.
+ *
+ * @return the childTasks value
+ */
+ public List childTasks() {
+ return this.childTasks;
+ }
+
+ /**
+ * Set the child tasks.
+ *
+ * @param childTasks the childTasks value to set
+ * @return the GroupTaskDetails object itself.
+ */
+ public GroupTaskDetails withChildTasks(List childTasks) {
+ this.childTasks = childTasks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthError.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthError.java
new file mode 100644
index 0000000000000..f554fa484c395
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthError.java
@@ -0,0 +1,305 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Health Error.
+ */
+public class HealthError {
+ /**
+ * Source of error.
+ */
+ @JsonProperty(value = "errorSource")
+ private String errorSource;
+
+ /**
+ * Type of error.
+ */
+ @JsonProperty(value = "errorType")
+ private String errorType;
+
+ /**
+ * Level of error.
+ */
+ @JsonProperty(value = "errorLevel")
+ private String errorLevel;
+
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode")
+ private String errorCode;
+
+ /**
+ * Error message.
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /**
+ * Possible causes of error.
+ */
+ @JsonProperty(value = "possibleCauses")
+ private String possibleCauses;
+
+ /**
+ * Recommended action to resolve error.
+ */
+ @JsonProperty(value = "recommendedAction")
+ private String recommendedAction;
+
+ /**
+ * Error creation time (UTC).
+ */
+ @JsonProperty(value = "creationTimeUtc")
+ private DateTime creationTimeUtc;
+
+ /**
+ * DRA error message.
+ */
+ @JsonProperty(value = "recoveryProviderErrorMessage")
+ private String recoveryProviderErrorMessage;
+
+ /**
+ * ID of the entity.
+ */
+ @JsonProperty(value = "entityId")
+ private String entityId;
+
+ /**
+ * The child health errors.
+ */
+ @JsonProperty(value = "childErrors")
+ private List childErrors;
+
+ /**
+ * Get source of error.
+ *
+ * @return the errorSource value
+ */
+ public String errorSource() {
+ return this.errorSource;
+ }
+
+ /**
+ * Set source of error.
+ *
+ * @param errorSource the errorSource value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withErrorSource(String errorSource) {
+ this.errorSource = errorSource;
+ return this;
+ }
+
+ /**
+ * Get type of error.
+ *
+ * @return the errorType value
+ */
+ public String errorType() {
+ return this.errorType;
+ }
+
+ /**
+ * Set type of error.
+ *
+ * @param errorType the errorType value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withErrorType(String errorType) {
+ this.errorType = errorType;
+ return this;
+ }
+
+ /**
+ * Get level of error.
+ *
+ * @return the errorLevel value
+ */
+ public String errorLevel() {
+ return this.errorLevel;
+ }
+
+ /**
+ * Set level of error.
+ *
+ * @param errorLevel the errorLevel value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withErrorLevel(String errorLevel) {
+ this.errorLevel = errorLevel;
+ return this;
+ }
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param errorCode the errorCode value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get error message.
+ *
+ * @return the errorMessage value
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set error message.
+ *
+ * @param errorMessage the errorMessage value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+ /**
+ * Get possible causes of error.
+ *
+ * @return the possibleCauses value
+ */
+ public String possibleCauses() {
+ return this.possibleCauses;
+ }
+
+ /**
+ * Set possible causes of error.
+ *
+ * @param possibleCauses the possibleCauses value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withPossibleCauses(String possibleCauses) {
+ this.possibleCauses = possibleCauses;
+ return this;
+ }
+
+ /**
+ * Get recommended action to resolve error.
+ *
+ * @return the recommendedAction value
+ */
+ public String recommendedAction() {
+ return this.recommendedAction;
+ }
+
+ /**
+ * Set recommended action to resolve error.
+ *
+ * @param recommendedAction the recommendedAction value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withRecommendedAction(String recommendedAction) {
+ this.recommendedAction = recommendedAction;
+ return this;
+ }
+
+ /**
+ * Get error creation time (UTC).
+ *
+ * @return the creationTimeUtc value
+ */
+ public DateTime creationTimeUtc() {
+ return this.creationTimeUtc;
+ }
+
+ /**
+ * Set error creation time (UTC).
+ *
+ * @param creationTimeUtc the creationTimeUtc value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withCreationTimeUtc(DateTime creationTimeUtc) {
+ this.creationTimeUtc = creationTimeUtc;
+ return this;
+ }
+
+ /**
+ * Get dRA error message.
+ *
+ * @return the recoveryProviderErrorMessage value
+ */
+ public String recoveryProviderErrorMessage() {
+ return this.recoveryProviderErrorMessage;
+ }
+
+ /**
+ * Set dRA error message.
+ *
+ * @param recoveryProviderErrorMessage the recoveryProviderErrorMessage value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withRecoveryProviderErrorMessage(String recoveryProviderErrorMessage) {
+ this.recoveryProviderErrorMessage = recoveryProviderErrorMessage;
+ return this;
+ }
+
+ /**
+ * Get iD of the entity.
+ *
+ * @return the entityId value
+ */
+ public String entityId() {
+ return this.entityId;
+ }
+
+ /**
+ * Set iD of the entity.
+ *
+ * @param entityId the entityId value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withEntityId(String entityId) {
+ this.entityId = entityId;
+ return this;
+ }
+
+ /**
+ * Get the child health errors.
+ *
+ * @return the childErrors value
+ */
+ public List childErrors() {
+ return this.childErrors;
+ }
+
+ /**
+ * Set the child health errors.
+ *
+ * @param childErrors the childErrors value to set
+ * @return the HealthError object itself.
+ */
+ public HealthError withChildErrors(List childErrors) {
+ this.childErrors = childErrors;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorCategory.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorCategory.java
new file mode 100644
index 0000000000000..ca0341bfd2880
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorCategory.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for HealthErrorCategory.
+ */
+public enum HealthErrorCategory {
+ /** Enum value Replication. */
+ REPLICATION("Replication"),
+
+ /** Enum value TestFailover. */
+ TEST_FAILOVER("TestFailover"),
+
+ /** Enum value Configuration. */
+ CONFIGURATION("Configuration");
+
+ /** The actual serialized value for a HealthErrorCategory instance. */
+ private String value;
+
+ HealthErrorCategory(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a HealthErrorCategory instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed HealthErrorCategory object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static HealthErrorCategory fromString(String value) {
+ HealthErrorCategory[] items = HealthErrorCategory.values();
+ for (HealthErrorCategory item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorSummary.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorSummary.java
new file mode 100644
index 0000000000000..816524f21e496
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HealthErrorSummary.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * class to define the summary of the health error details.
+ */
+public class HealthErrorSummary {
+ /**
+ * The code of the health error.
+ */
+ @JsonProperty(value = "summaryCode")
+ private String summaryCode;
+
+ /**
+ * The category of the health error. Possible values include:
+ * 'Replication', 'TestFailover', 'Configuration'.
+ */
+ @JsonProperty(value = "category")
+ private HealthErrorCategory category;
+
+ /**
+ * Severity of error. Possible values include: 'NONE', 'Warning', 'Error',
+ * 'Info'.
+ */
+ @JsonProperty(value = "severity")
+ private Severity severity;
+
+ /**
+ * The summary message of the health error.
+ */
+ @JsonProperty(value = "summaryMessage")
+ private String summaryMessage;
+
+ /**
+ * The type of affected ARM resource.
+ */
+ @JsonProperty(value = "affectedResourceType")
+ private String affectedResourceType;
+
+ /**
+ * The sub type of any subcomponent within the ARM resource that this might
+ * be applicable. Value remains null if not applicable.
+ */
+ @JsonProperty(value = "affectedResourceSubtype")
+ private String affectedResourceSubtype;
+
+ /**
+ * The list of affected resource correlation Ids. This can be used to
+ * uniquely identify the count of items affected by a specific category and
+ * severity as well as count of item affected by an specific issue.
+ */
+ @JsonProperty(value = "affectedResourceCorrelationIds")
+ private List affectedResourceCorrelationIds;
+
+ /**
+ * Get the code of the health error.
+ *
+ * @return the summaryCode value
+ */
+ public String summaryCode() {
+ return this.summaryCode;
+ }
+
+ /**
+ * Set the code of the health error.
+ *
+ * @param summaryCode the summaryCode value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withSummaryCode(String summaryCode) {
+ this.summaryCode = summaryCode;
+ return this;
+ }
+
+ /**
+ * Get the category of the health error. Possible values include: 'Replication', 'TestFailover', 'Configuration'.
+ *
+ * @return the category value
+ */
+ public HealthErrorCategory category() {
+ return this.category;
+ }
+
+ /**
+ * Set the category of the health error. Possible values include: 'Replication', 'TestFailover', 'Configuration'.
+ *
+ * @param category the category value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withCategory(HealthErrorCategory category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get severity of error. Possible values include: 'NONE', 'Warning', 'Error', 'Info'.
+ *
+ * @return the severity value
+ */
+ public Severity severity() {
+ return this.severity;
+ }
+
+ /**
+ * Set severity of error. Possible values include: 'NONE', 'Warning', 'Error', 'Info'.
+ *
+ * @param severity the severity value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withSeverity(Severity severity) {
+ this.severity = severity;
+ return this;
+ }
+
+ /**
+ * Get the summary message of the health error.
+ *
+ * @return the summaryMessage value
+ */
+ public String summaryMessage() {
+ return this.summaryMessage;
+ }
+
+ /**
+ * Set the summary message of the health error.
+ *
+ * @param summaryMessage the summaryMessage value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withSummaryMessage(String summaryMessage) {
+ this.summaryMessage = summaryMessage;
+ return this;
+ }
+
+ /**
+ * Get the type of affected ARM resource.
+ *
+ * @return the affectedResourceType value
+ */
+ public String affectedResourceType() {
+ return this.affectedResourceType;
+ }
+
+ /**
+ * Set the type of affected ARM resource.
+ *
+ * @param affectedResourceType the affectedResourceType value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withAffectedResourceType(String affectedResourceType) {
+ this.affectedResourceType = affectedResourceType;
+ return this;
+ }
+
+ /**
+ * Get the sub type of any subcomponent within the ARM resource that this might be applicable. Value remains null if not applicable.
+ *
+ * @return the affectedResourceSubtype value
+ */
+ public String affectedResourceSubtype() {
+ return this.affectedResourceSubtype;
+ }
+
+ /**
+ * Set the sub type of any subcomponent within the ARM resource that this might be applicable. Value remains null if not applicable.
+ *
+ * @param affectedResourceSubtype the affectedResourceSubtype value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withAffectedResourceSubtype(String affectedResourceSubtype) {
+ this.affectedResourceSubtype = affectedResourceSubtype;
+ return this;
+ }
+
+ /**
+ * Get the list of affected resource correlation Ids. This can be used to uniquely identify the count of items affected by a specific category and severity as well as count of item affected by an specific issue.
+ *
+ * @return the affectedResourceCorrelationIds value
+ */
+ public List affectedResourceCorrelationIds() {
+ return this.affectedResourceCorrelationIds;
+ }
+
+ /**
+ * Set the list of affected resource correlation Ids. This can be used to uniquely identify the count of items affected by a specific category and severity as well as count of item affected by an specific issue.
+ *
+ * @param affectedResourceCorrelationIds the affectedResourceCorrelationIds value to set
+ * @return the HealthErrorSummary object itself.
+ */
+ public HealthErrorSummary withAffectedResourceCorrelationIds(List affectedResourceCorrelationIds) {
+ this.affectedResourceCorrelationIds = affectedResourceCorrelationIds;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012EventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012EventDetails.java
new file mode 100644
index 0000000000000..3fa28466cb354
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012EventDetails.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a HyperVReplica E2E event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012")
+public class HyperVReplica2012EventDetails extends EventProviderSpecificDetails {
+ /**
+ * The container friendly name.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * The fabric friendly name.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * The remote container name.
+ */
+ @JsonProperty(value = "remoteContainerName")
+ private String remoteContainerName;
+
+ /**
+ * The remote fabric name.
+ */
+ @JsonProperty(value = "remoteFabricName")
+ private String remoteFabricName;
+
+ /**
+ * Get the container friendly name.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the container friendly name.
+ *
+ * @param containerName the containerName value to set
+ * @return the HyperVReplica2012EventDetails object itself.
+ */
+ public HyperVReplica2012EventDetails withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the fabric friendly name.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the fabric friendly name.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the HyperVReplica2012EventDetails object itself.
+ */
+ public HyperVReplica2012EventDetails withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the remote container name.
+ *
+ * @return the remoteContainerName value
+ */
+ public String remoteContainerName() {
+ return this.remoteContainerName;
+ }
+
+ /**
+ * Set the remote container name.
+ *
+ * @param remoteContainerName the remoteContainerName value to set
+ * @return the HyperVReplica2012EventDetails object itself.
+ */
+ public HyperVReplica2012EventDetails withRemoteContainerName(String remoteContainerName) {
+ this.remoteContainerName = remoteContainerName;
+ return this;
+ }
+
+ /**
+ * Get the remote fabric name.
+ *
+ * @return the remoteFabricName value
+ */
+ public String remoteFabricName() {
+ return this.remoteFabricName;
+ }
+
+ /**
+ * Set the remote fabric name.
+ *
+ * @param remoteFabricName the remoteFabricName value to set
+ * @return the HyperVReplica2012EventDetails object itself.
+ */
+ public HyperVReplica2012EventDetails withRemoteFabricName(String remoteFabricName) {
+ this.remoteFabricName = remoteFabricName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012R2EventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012R2EventDetails.java
new file mode 100644
index 0000000000000..41307bcc99f14
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplica2012R2EventDetails.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a HyperVReplica blue E2E event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012R2")
+public class HyperVReplica2012R2EventDetails extends EventProviderSpecificDetails {
+ /**
+ * The container friendly name.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * The fabric friendly name.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * The remote container name.
+ */
+ @JsonProperty(value = "remoteContainerName")
+ private String remoteContainerName;
+
+ /**
+ * The remote fabric name.
+ */
+ @JsonProperty(value = "remoteFabricName")
+ private String remoteFabricName;
+
+ /**
+ * Get the container friendly name.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the container friendly name.
+ *
+ * @param containerName the containerName value to set
+ * @return the HyperVReplica2012R2EventDetails object itself.
+ */
+ public HyperVReplica2012R2EventDetails withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the fabric friendly name.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the fabric friendly name.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the HyperVReplica2012R2EventDetails object itself.
+ */
+ public HyperVReplica2012R2EventDetails withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the remote container name.
+ *
+ * @return the remoteContainerName value
+ */
+ public String remoteContainerName() {
+ return this.remoteContainerName;
+ }
+
+ /**
+ * Set the remote container name.
+ *
+ * @param remoteContainerName the remoteContainerName value to set
+ * @return the HyperVReplica2012R2EventDetails object itself.
+ */
+ public HyperVReplica2012R2EventDetails withRemoteContainerName(String remoteContainerName) {
+ this.remoteContainerName = remoteContainerName;
+ return this;
+ }
+
+ /**
+ * Get the remote fabric name.
+ *
+ * @return the remoteFabricName value
+ */
+ public String remoteFabricName() {
+ return this.remoteFabricName;
+ }
+
+ /**
+ * Set the remote fabric name.
+ *
+ * @param remoteFabricName the remoteFabricName value to set
+ * @return the HyperVReplica2012R2EventDetails object itself.
+ */
+ public HyperVReplica2012R2EventDetails withRemoteFabricName(String remoteFabricName) {
+ this.remoteFabricName = remoteFabricName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureApplyRecoveryPointInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureApplyRecoveryPointInput.java
new file mode 100644
index 0000000000000..74d8499121a21
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureApplyRecoveryPointInput.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * ApplyRecoveryPoint input specific to HyperVReplicaAzure provider.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureApplyRecoveryPointInput extends ApplyRecoveryPointProviderSpecificInput {
+ /**
+ * The vault location where the recovery Vm resides.
+ */
+ @JsonProperty(value = "vaultLocation")
+ private String vaultLocation;
+
+ /**
+ * The primary kek certificate pfx.
+ */
+ @JsonProperty(value = "primaryKekCertificatePfx")
+ private String primaryKekCertificatePfx;
+
+ /**
+ * The secondary kek certificate pfx.
+ */
+ @JsonProperty(value = "secondaryKekCertificatePfx")
+ private String secondaryKekCertificatePfx;
+
+ /**
+ * Get the vault location where the recovery Vm resides.
+ *
+ * @return the vaultLocation value
+ */
+ public String vaultLocation() {
+ return this.vaultLocation;
+ }
+
+ /**
+ * Set the vault location where the recovery Vm resides.
+ *
+ * @param vaultLocation the vaultLocation value to set
+ * @return the HyperVReplicaAzureApplyRecoveryPointInput object itself.
+ */
+ public HyperVReplicaAzureApplyRecoveryPointInput withVaultLocation(String vaultLocation) {
+ this.vaultLocation = vaultLocation;
+ return this;
+ }
+
+ /**
+ * Get the primary kek certificate pfx.
+ *
+ * @return the primaryKekCertificatePfx value
+ */
+ public String primaryKekCertificatePfx() {
+ return this.primaryKekCertificatePfx;
+ }
+
+ /**
+ * Set the primary kek certificate pfx.
+ *
+ * @param primaryKekCertificatePfx the primaryKekCertificatePfx value to set
+ * @return the HyperVReplicaAzureApplyRecoveryPointInput object itself.
+ */
+ public HyperVReplicaAzureApplyRecoveryPointInput withPrimaryKekCertificatePfx(String primaryKekCertificatePfx) {
+ this.primaryKekCertificatePfx = primaryKekCertificatePfx;
+ return this;
+ }
+
+ /**
+ * Get the secondary kek certificate pfx.
+ *
+ * @return the secondaryKekCertificatePfx value
+ */
+ public String secondaryKekCertificatePfx() {
+ return this.secondaryKekCertificatePfx;
+ }
+
+ /**
+ * Set the secondary kek certificate pfx.
+ *
+ * @param secondaryKekCertificatePfx the secondaryKekCertificatePfx value to set
+ * @return the HyperVReplicaAzureApplyRecoveryPointInput object itself.
+ */
+ public HyperVReplicaAzureApplyRecoveryPointInput withSecondaryKekCertificatePfx(String secondaryKekCertificatePfx) {
+ this.secondaryKekCertificatePfx = secondaryKekCertificatePfx;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEnableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEnableProtectionInput.java
new file mode 100644
index 0000000000000..316a93269c9a0
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEnableProtectionInput.java
@@ -0,0 +1,389 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure specific enable protection input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureEnableProtectionInput extends EnableProtectionProviderSpecificInput {
+ /**
+ * The Hyper-V host Vm Id.
+ */
+ @JsonProperty(value = "hvHostVmId")
+ private String hvHostVmId;
+
+ /**
+ * The Vm Name.
+ */
+ @JsonProperty(value = "vmName")
+ private String vmName;
+
+ /**
+ * The OS type associated with vm.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The OS disk VHD id associated with vm.
+ */
+ @JsonProperty(value = "vhdId")
+ private String vhdId;
+
+ /**
+ * The storage account name.
+ */
+ @JsonProperty(value = "targetStorageAccountId")
+ private String targetStorageAccountId;
+
+ /**
+ * The selected target Azure network Id.
+ */
+ @JsonProperty(value = "targetAzureNetworkId")
+ private String targetAzureNetworkId;
+
+ /**
+ * The selected target Azure subnet Id.
+ */
+ @JsonProperty(value = "targetAzureSubnetId")
+ private String targetAzureSubnetId;
+
+ /**
+ * The selected option to enable RDP\SSH on target vm after failover.
+ * String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ */
+ @JsonProperty(value = "enableRDPOnTargetOption")
+ private String enableRDPOnTargetOption;
+
+ /**
+ * The target azure Vm Name.
+ */
+ @JsonProperty(value = "targetAzureVmName")
+ private String targetAzureVmName;
+
+ /**
+ * The storage account to be used for logging during replication.
+ */
+ @JsonProperty(value = "logStorageAccountId")
+ private String logStorageAccountId;
+
+ /**
+ * The list of VHD IDs of disks to be protected.
+ */
+ @JsonProperty(value = "disksToInclude")
+ private List disksToInclude;
+
+ /**
+ * The Id of the target resource group (for classic deployment) in which
+ * the failover VM is to be created.
+ */
+ @JsonProperty(value = "targetAzureV1ResourceGroupId")
+ private String targetAzureV1ResourceGroupId;
+
+ /**
+ * The Id of the target resource group (for resource manager deployment) in
+ * which the failover VM is to be created.
+ */
+ @JsonProperty(value = "targetAzureV2ResourceGroupId")
+ private String targetAzureV2ResourceGroupId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * Get the Hyper-V host Vm Id.
+ *
+ * @return the hvHostVmId value
+ */
+ public String hvHostVmId() {
+ return this.hvHostVmId;
+ }
+
+ /**
+ * Set the Hyper-V host Vm Id.
+ *
+ * @param hvHostVmId the hvHostVmId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withHvHostVmId(String hvHostVmId) {
+ this.hvHostVmId = hvHostVmId;
+ return this;
+ }
+
+ /**
+ * Get the Vm Name.
+ *
+ * @return the vmName value
+ */
+ public String vmName() {
+ return this.vmName;
+ }
+
+ /**
+ * Set the Vm Name.
+ *
+ * @param vmName the vmName value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withVmName(String vmName) {
+ this.vmName = vmName;
+ return this;
+ }
+
+ /**
+ * Get the OS type associated with vm.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type associated with vm.
+ *
+ * @param osType the osType value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the OS disk VHD id associated with vm.
+ *
+ * @return the vhdId value
+ */
+ public String vhdId() {
+ return this.vhdId;
+ }
+
+ /**
+ * Set the OS disk VHD id associated with vm.
+ *
+ * @param vhdId the vhdId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withVhdId(String vhdId) {
+ this.vhdId = vhdId;
+ return this;
+ }
+
+ /**
+ * Get the storage account name.
+ *
+ * @return the targetStorageAccountId value
+ */
+ public String targetStorageAccountId() {
+ return this.targetStorageAccountId;
+ }
+
+ /**
+ * Set the storage account name.
+ *
+ * @param targetStorageAccountId the targetStorageAccountId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetStorageAccountId(String targetStorageAccountId) {
+ this.targetStorageAccountId = targetStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the selected target Azure network Id.
+ *
+ * @return the targetAzureNetworkId value
+ */
+ public String targetAzureNetworkId() {
+ return this.targetAzureNetworkId;
+ }
+
+ /**
+ * Set the selected target Azure network Id.
+ *
+ * @param targetAzureNetworkId the targetAzureNetworkId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetAzureNetworkId(String targetAzureNetworkId) {
+ this.targetAzureNetworkId = targetAzureNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the selected target Azure subnet Id.
+ *
+ * @return the targetAzureSubnetId value
+ */
+ public String targetAzureSubnetId() {
+ return this.targetAzureSubnetId;
+ }
+
+ /**
+ * Set the selected target Azure subnet Id.
+ *
+ * @param targetAzureSubnetId the targetAzureSubnetId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetAzureSubnetId(String targetAzureSubnetId) {
+ this.targetAzureSubnetId = targetAzureSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @return the enableRDPOnTargetOption value
+ */
+ public String enableRDPOnTargetOption() {
+ return this.enableRDPOnTargetOption;
+ }
+
+ /**
+ * Set the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @param enableRDPOnTargetOption the enableRDPOnTargetOption value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withEnableRDPOnTargetOption(String enableRDPOnTargetOption) {
+ this.enableRDPOnTargetOption = enableRDPOnTargetOption;
+ return this;
+ }
+
+ /**
+ * Get the target azure Vm Name.
+ *
+ * @return the targetAzureVmName value
+ */
+ public String targetAzureVmName() {
+ return this.targetAzureVmName;
+ }
+
+ /**
+ * Set the target azure Vm Name.
+ *
+ * @param targetAzureVmName the targetAzureVmName value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetAzureVmName(String targetAzureVmName) {
+ this.targetAzureVmName = targetAzureVmName;
+ return this;
+ }
+
+ /**
+ * Get the storage account to be used for logging during replication.
+ *
+ * @return the logStorageAccountId value
+ */
+ public String logStorageAccountId() {
+ return this.logStorageAccountId;
+ }
+
+ /**
+ * Set the storage account to be used for logging during replication.
+ *
+ * @param logStorageAccountId the logStorageAccountId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withLogStorageAccountId(String logStorageAccountId) {
+ this.logStorageAccountId = logStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the list of VHD IDs of disks to be protected.
+ *
+ * @return the disksToInclude value
+ */
+ public List disksToInclude() {
+ return this.disksToInclude;
+ }
+
+ /**
+ * Set the list of VHD IDs of disks to be protected.
+ *
+ * @param disksToInclude the disksToInclude value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withDisksToInclude(List disksToInclude) {
+ this.disksToInclude = disksToInclude;
+ return this;
+ }
+
+ /**
+ * Get the Id of the target resource group (for classic deployment) in which the failover VM is to be created.
+ *
+ * @return the targetAzureV1ResourceGroupId value
+ */
+ public String targetAzureV1ResourceGroupId() {
+ return this.targetAzureV1ResourceGroupId;
+ }
+
+ /**
+ * Set the Id of the target resource group (for classic deployment) in which the failover VM is to be created.
+ *
+ * @param targetAzureV1ResourceGroupId the targetAzureV1ResourceGroupId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetAzureV1ResourceGroupId(String targetAzureV1ResourceGroupId) {
+ this.targetAzureV1ResourceGroupId = targetAzureV1ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
+ *
+ * @return the targetAzureV2ResourceGroupId value
+ */
+ public String targetAzureV2ResourceGroupId() {
+ return this.targetAzureV2ResourceGroupId;
+ }
+
+ /**
+ * Set the Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
+ *
+ * @param targetAzureV2ResourceGroupId the targetAzureV2ResourceGroupId value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withTargetAzureV2ResourceGroupId(String targetAzureV2ResourceGroupId) {
+ this.targetAzureV2ResourceGroupId = targetAzureV2ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the HyperVReplicaAzureEnableProtectionInput object itself.
+ */
+ public HyperVReplicaAzureEnableProtectionInput withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEventDetails.java
new file mode 100644
index 0000000000000..773a18d4f3cd5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureEventDetails.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a HyperVReplica E2A event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureEventDetails extends EventProviderSpecificDetails {
+ /**
+ * The container friendly name.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * The fabric friendly name.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * The remote container name.
+ */
+ @JsonProperty(value = "remoteContainerName")
+ private String remoteContainerName;
+
+ /**
+ * Get the container friendly name.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the container friendly name.
+ *
+ * @param containerName the containerName value to set
+ * @return the HyperVReplicaAzureEventDetails object itself.
+ */
+ public HyperVReplicaAzureEventDetails withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the fabric friendly name.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the fabric friendly name.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the HyperVReplicaAzureEventDetails object itself.
+ */
+ public HyperVReplicaAzureEventDetails withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the remote container name.
+ *
+ * @return the remoteContainerName value
+ */
+ public String remoteContainerName() {
+ return this.remoteContainerName;
+ }
+
+ /**
+ * Set the remote container name.
+ *
+ * @param remoteContainerName the remoteContainerName value to set
+ * @return the HyperVReplicaAzureEventDetails object itself.
+ */
+ public HyperVReplicaAzureEventDetails withRemoteContainerName(String remoteContainerName) {
+ this.remoteContainerName = remoteContainerName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailbackProviderInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailbackProviderInput.java
new file mode 100644
index 0000000000000..a232fcafeecdc
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailbackProviderInput.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HvrA provider specific input for failback.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzureFailback")
+public class HyperVReplicaAzureFailbackProviderInput extends ProviderSpecificFailoverInput {
+ /**
+ * Data sync option.
+ */
+ @JsonProperty(value = "dataSyncOption")
+ private String dataSyncOption;
+
+ /**
+ * ALR options to create alternate recovery.
+ */
+ @JsonProperty(value = "recoveryVmCreationOption")
+ private String recoveryVmCreationOption;
+
+ /**
+ * Provider ID for alternate location.
+ */
+ @JsonProperty(value = "providerIdForAlternateRecovery")
+ private String providerIdForAlternateRecovery;
+
+ /**
+ * Get data sync option.
+ *
+ * @return the dataSyncOption value
+ */
+ public String dataSyncOption() {
+ return this.dataSyncOption;
+ }
+
+ /**
+ * Set data sync option.
+ *
+ * @param dataSyncOption the dataSyncOption value to set
+ * @return the HyperVReplicaAzureFailbackProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailbackProviderInput withDataSyncOption(String dataSyncOption) {
+ this.dataSyncOption = dataSyncOption;
+ return this;
+ }
+
+ /**
+ * Get aLR options to create alternate recovery.
+ *
+ * @return the recoveryVmCreationOption value
+ */
+ public String recoveryVmCreationOption() {
+ return this.recoveryVmCreationOption;
+ }
+
+ /**
+ * Set aLR options to create alternate recovery.
+ *
+ * @param recoveryVmCreationOption the recoveryVmCreationOption value to set
+ * @return the HyperVReplicaAzureFailbackProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailbackProviderInput withRecoveryVmCreationOption(String recoveryVmCreationOption) {
+ this.recoveryVmCreationOption = recoveryVmCreationOption;
+ return this;
+ }
+
+ /**
+ * Get provider ID for alternate location.
+ *
+ * @return the providerIdForAlternateRecovery value
+ */
+ public String providerIdForAlternateRecovery() {
+ return this.providerIdForAlternateRecovery;
+ }
+
+ /**
+ * Set provider ID for alternate location.
+ *
+ * @param providerIdForAlternateRecovery the providerIdForAlternateRecovery value to set
+ * @return the HyperVReplicaAzureFailbackProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailbackProviderInput withProviderIdForAlternateRecovery(String providerIdForAlternateRecovery) {
+ this.providerIdForAlternateRecovery = providerIdForAlternateRecovery;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailoverProviderInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailoverProviderInput.java
new file mode 100644
index 0000000000000..e51f3601b1d9b
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureFailoverProviderInput.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HvrA provider specific input for failover.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureFailoverProviderInput extends ProviderSpecificFailoverInput {
+ /**
+ * Location of the vault.
+ */
+ @JsonProperty(value = "vaultLocation")
+ private String vaultLocation;
+
+ /**
+ * Primary kek certificate pfx.
+ */
+ @JsonProperty(value = "primaryKekCertificatePfx")
+ private String primaryKekCertificatePfx;
+
+ /**
+ * Secondary kek certificate pfx.
+ */
+ @JsonProperty(value = "secondaryKekCertificatePfx")
+ private String secondaryKekCertificatePfx;
+
+ /**
+ * The recovery point id to be passed to failover to a particular recovery
+ * point. In case of latest recovery point, null should be passed.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Get location of the vault.
+ *
+ * @return the vaultLocation value
+ */
+ public String vaultLocation() {
+ return this.vaultLocation;
+ }
+
+ /**
+ * Set location of the vault.
+ *
+ * @param vaultLocation the vaultLocation value to set
+ * @return the HyperVReplicaAzureFailoverProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailoverProviderInput withVaultLocation(String vaultLocation) {
+ this.vaultLocation = vaultLocation;
+ return this;
+ }
+
+ /**
+ * Get primary kek certificate pfx.
+ *
+ * @return the primaryKekCertificatePfx value
+ */
+ public String primaryKekCertificatePfx() {
+ return this.primaryKekCertificatePfx;
+ }
+
+ /**
+ * Set primary kek certificate pfx.
+ *
+ * @param primaryKekCertificatePfx the primaryKekCertificatePfx value to set
+ * @return the HyperVReplicaAzureFailoverProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailoverProviderInput withPrimaryKekCertificatePfx(String primaryKekCertificatePfx) {
+ this.primaryKekCertificatePfx = primaryKekCertificatePfx;
+ return this;
+ }
+
+ /**
+ * Get secondary kek certificate pfx.
+ *
+ * @return the secondaryKekCertificatePfx value
+ */
+ public String secondaryKekCertificatePfx() {
+ return this.secondaryKekCertificatePfx;
+ }
+
+ /**
+ * Set secondary kek certificate pfx.
+ *
+ * @param secondaryKekCertificatePfx the secondaryKekCertificatePfx value to set
+ * @return the HyperVReplicaAzureFailoverProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailoverProviderInput withSecondaryKekCertificatePfx(String secondaryKekCertificatePfx) {
+ this.secondaryKekCertificatePfx = secondaryKekCertificatePfx;
+ return this;
+ }
+
+ /**
+ * Get the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the HyperVReplicaAzureFailoverProviderInput object itself.
+ */
+ public HyperVReplicaAzureFailoverProviderInput withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyDetails.java
new file mode 100644
index 0000000000000..aef41994634c6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyDetails.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper-V Replica Azure specific protection profile details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzurePolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * The duration (in hours) to which point the recovery history needs to be
+ * maintained.
+ */
+ @JsonProperty(value = "recoveryPointHistoryDurationInHours")
+ private Integer recoveryPointHistoryDurationInHours;
+
+ /**
+ * The interval (in hours) at which Hyper-V Replica should create an
+ * application consistent snapshot within the VM.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * The replication interval.
+ */
+ @JsonProperty(value = "replicationInterval")
+ private Integer replicationInterval;
+
+ /**
+ * The scheduled start time for the initial replication. If this parameter
+ * is Null, the initial replication starts immediately.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating whether encryption is enabled for virtual machines in
+ * this cloud.
+ */
+ @JsonProperty(value = "encryption")
+ private String encryption;
+
+ /**
+ * The active storage account Id.
+ */
+ @JsonProperty(value = "activeStorageAccountId")
+ private String activeStorageAccountId;
+
+ /**
+ * Get the duration (in hours) to which point the recovery history needs to be maintained.
+ *
+ * @return the recoveryPointHistoryDurationInHours value
+ */
+ public Integer recoveryPointHistoryDurationInHours() {
+ return this.recoveryPointHistoryDurationInHours;
+ }
+
+ /**
+ * Set the duration (in hours) to which point the recovery history needs to be maintained.
+ *
+ * @param recoveryPointHistoryDurationInHours the recoveryPointHistoryDurationInHours value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withRecoveryPointHistoryDurationInHours(Integer recoveryPointHistoryDurationInHours) {
+ this.recoveryPointHistoryDurationInHours = recoveryPointHistoryDurationInHours;
+ return this;
+ }
+
+ /**
+ * Get the interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set the interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get the replication interval.
+ *
+ * @return the replicationInterval value
+ */
+ public Integer replicationInterval() {
+ return this.replicationInterval;
+ }
+
+ /**
+ * Set the replication interval.
+ *
+ * @param replicationInterval the replicationInterval value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withReplicationInterval(Integer replicationInterval) {
+ this.replicationInterval = replicationInterval;
+ return this;
+ }
+
+ /**
+ * Get the scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set the scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether encryption is enabled for virtual machines in this cloud.
+ *
+ * @return the encryption value
+ */
+ public String encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set a value indicating whether encryption is enabled for virtual machines in this cloud.
+ *
+ * @param encryption the encryption value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withEncryption(String encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get the active storage account Id.
+ *
+ * @return the activeStorageAccountId value
+ */
+ public String activeStorageAccountId() {
+ return this.activeStorageAccountId;
+ }
+
+ /**
+ * Set the active storage account Id.
+ *
+ * @param activeStorageAccountId the activeStorageAccountId value to set
+ * @return the HyperVReplicaAzurePolicyDetails object itself.
+ */
+ public HyperVReplicaAzurePolicyDetails withActiveStorageAccountId(String activeStorageAccountId) {
+ this.activeStorageAccountId = activeStorageAccountId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyInput.java
new file mode 100644
index 0000000000000..889f1bbe705d1
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzurePolicyInput.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper-V Replica Azure specific input for creating a protection profile.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzurePolicyInput extends PolicyProviderSpecificInput {
+ /**
+ * The duration (in hours) to which point the recovery history needs to be
+ * maintained.
+ */
+ @JsonProperty(value = "recoveryPointHistoryDuration")
+ private Integer recoveryPointHistoryDuration;
+
+ /**
+ * The interval (in hours) at which Hyper-V Replica should create an
+ * application consistent snapshot within the VM.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * The replication interval.
+ */
+ @JsonProperty(value = "replicationInterval")
+ private Integer replicationInterval;
+
+ /**
+ * The scheduled start time for the initial replication. If this parameter
+ * is Null, the initial replication starts immediately.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating whether encryption needs to be enabled for Vms in
+ * this cloud.
+ */
+ @JsonProperty(value = "encryption")
+ private String encryption;
+
+ /**
+ * The list of storage accounts to which the VMs in the primary cloud can
+ * replicate to.
+ */
+ @JsonProperty(value = "storageAccounts")
+ private List storageAccounts;
+
+ /**
+ * Get the duration (in hours) to which point the recovery history needs to be maintained.
+ *
+ * @return the recoveryPointHistoryDuration value
+ */
+ public Integer recoveryPointHistoryDuration() {
+ return this.recoveryPointHistoryDuration;
+ }
+
+ /**
+ * Set the duration (in hours) to which point the recovery history needs to be maintained.
+ *
+ * @param recoveryPointHistoryDuration the recoveryPointHistoryDuration value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withRecoveryPointHistoryDuration(Integer recoveryPointHistoryDuration) {
+ this.recoveryPointHistoryDuration = recoveryPointHistoryDuration;
+ return this;
+ }
+
+ /**
+ * Get the interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set the interval (in hours) at which Hyper-V Replica should create an application consistent snapshot within the VM.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get the replication interval.
+ *
+ * @return the replicationInterval value
+ */
+ public Integer replicationInterval() {
+ return this.replicationInterval;
+ }
+
+ /**
+ * Set the replication interval.
+ *
+ * @param replicationInterval the replicationInterval value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withReplicationInterval(Integer replicationInterval) {
+ this.replicationInterval = replicationInterval;
+ return this;
+ }
+
+ /**
+ * Get the scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set the scheduled start time for the initial replication. If this parameter is Null, the initial replication starts immediately.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether encryption needs to be enabled for Vms in this cloud.
+ *
+ * @return the encryption value
+ */
+ public String encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set a value indicating whether encryption needs to be enabled for Vms in this cloud.
+ *
+ * @param encryption the encryption value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withEncryption(String encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get the list of storage accounts to which the VMs in the primary cloud can replicate to.
+ *
+ * @return the storageAccounts value
+ */
+ public List storageAccounts() {
+ return this.storageAccounts;
+ }
+
+ /**
+ * Set the list of storage accounts to which the VMs in the primary cloud can replicate to.
+ *
+ * @param storageAccounts the storageAccounts value to set
+ * @return the HyperVReplicaAzurePolicyInput object itself.
+ */
+ public HyperVReplicaAzurePolicyInput withStorageAccounts(List storageAccounts) {
+ this.storageAccounts = storageAccounts;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReplicationDetails.java
new file mode 100644
index 0000000000000..01121aaf4f4ca
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReplicationDetails.java
@@ -0,0 +1,572 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper V Replica Azure provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * Azure VM Disk details.
+ */
+ @JsonProperty(value = "azureVMDiskDetails")
+ private List azureVMDiskDetails;
+
+ /**
+ * Recovery Azure given name.
+ */
+ @JsonProperty(value = "recoveryAzureVMName")
+ private String recoveryAzureVMName;
+
+ /**
+ * The Recovery Azure VM size.
+ */
+ @JsonProperty(value = "recoveryAzureVMSize")
+ private String recoveryAzureVMSize;
+
+ /**
+ * The recovery Azure storage account.
+ */
+ @JsonProperty(value = "recoveryAzureStorageAccount")
+ private String recoveryAzureStorageAccount;
+
+ /**
+ * The ARM id of the log storage account used for replication. This will be
+ * set to null if no log storage account was provided during enable
+ * protection.
+ */
+ @JsonProperty(value = "recoveryAzureLogStorageAccountId")
+ private String recoveryAzureLogStorageAccountId;
+
+ /**
+ * The Last replication time.
+ */
+ @JsonProperty(value = "lastReplicatedTime")
+ private DateTime lastReplicatedTime;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * Initial replication details.
+ */
+ @JsonProperty(value = "initialReplicationDetails")
+ private InitialReplicationDetails initialReplicationDetails;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The selected recovery azure network Id.
+ */
+ @JsonProperty(value = "selectedRecoveryAzureNetworkId")
+ private String selectedRecoveryAzureNetworkId;
+
+ /**
+ * The encryption info.
+ */
+ @JsonProperty(value = "encryption")
+ private String encryption;
+
+ /**
+ * The operating system info.
+ */
+ @JsonProperty(value = "oSDetails")
+ private OSDetails oSDetails;
+
+ /**
+ * The RAM size of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmRAMSizeInMB")
+ private Integer sourceVmRAMSizeInMB;
+
+ /**
+ * The CPU count of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmCPUCount")
+ private Integer sourceVmCPUCount;
+
+ /**
+ * The selected option to enable RDP\SSH on target vm after failover.
+ * String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ */
+ @JsonProperty(value = "enableRDPOnTargetOption")
+ private String enableRDPOnTargetOption;
+
+ /**
+ * The target resource group Id.
+ */
+ @JsonProperty(value = "recoveryAzureResourceGroupId")
+ private String recoveryAzureResourceGroupId;
+
+ /**
+ * The recovery availability set Id.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySetId")
+ private String recoveryAvailabilitySetId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * License Type of the VM to be used.
+ */
+ @JsonProperty(value = "licenseType")
+ private String licenseType;
+
+ /**
+ * Get azure VM Disk details.
+ *
+ * @return the azureVMDiskDetails value
+ */
+ public List azureVMDiskDetails() {
+ return this.azureVMDiskDetails;
+ }
+
+ /**
+ * Set azure VM Disk details.
+ *
+ * @param azureVMDiskDetails the azureVMDiskDetails value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withAzureVMDiskDetails(List azureVMDiskDetails) {
+ this.azureVMDiskDetails = azureVMDiskDetails;
+ return this;
+ }
+
+ /**
+ * Get recovery Azure given name.
+ *
+ * @return the recoveryAzureVMName value
+ */
+ public String recoveryAzureVMName() {
+ return this.recoveryAzureVMName;
+ }
+
+ /**
+ * Set recovery Azure given name.
+ *
+ * @param recoveryAzureVMName the recoveryAzureVMName value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAzureVMName(String recoveryAzureVMName) {
+ this.recoveryAzureVMName = recoveryAzureVMName;
+ return this;
+ }
+
+ /**
+ * Get the Recovery Azure VM size.
+ *
+ * @return the recoveryAzureVMSize value
+ */
+ public String recoveryAzureVMSize() {
+ return this.recoveryAzureVMSize;
+ }
+
+ /**
+ * Set the Recovery Azure VM size.
+ *
+ * @param recoveryAzureVMSize the recoveryAzureVMSize value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAzureVMSize(String recoveryAzureVMSize) {
+ this.recoveryAzureVMSize = recoveryAzureVMSize;
+ return this;
+ }
+
+ /**
+ * Get the recovery Azure storage account.
+ *
+ * @return the recoveryAzureStorageAccount value
+ */
+ public String recoveryAzureStorageAccount() {
+ return this.recoveryAzureStorageAccount;
+ }
+
+ /**
+ * Set the recovery Azure storage account.
+ *
+ * @param recoveryAzureStorageAccount the recoveryAzureStorageAccount value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAzureStorageAccount(String recoveryAzureStorageAccount) {
+ this.recoveryAzureStorageAccount = recoveryAzureStorageAccount;
+ return this;
+ }
+
+ /**
+ * Get the ARM id of the log storage account used for replication. This will be set to null if no log storage account was provided during enable protection.
+ *
+ * @return the recoveryAzureLogStorageAccountId value
+ */
+ public String recoveryAzureLogStorageAccountId() {
+ return this.recoveryAzureLogStorageAccountId;
+ }
+
+ /**
+ * Set the ARM id of the log storage account used for replication. This will be set to null if no log storage account was provided during enable protection.
+ *
+ * @param recoveryAzureLogStorageAccountId the recoveryAzureLogStorageAccountId value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAzureLogStorageAccountId(String recoveryAzureLogStorageAccountId) {
+ this.recoveryAzureLogStorageAccountId = recoveryAzureLogStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the Last replication time.
+ *
+ * @return the lastReplicatedTime value
+ */
+ public DateTime lastReplicatedTime() {
+ return this.lastReplicatedTime;
+ }
+
+ /**
+ * Set the Last replication time.
+ *
+ * @param lastReplicatedTime the lastReplicatedTime value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withLastReplicatedTime(DateTime lastReplicatedTime) {
+ this.lastReplicatedTime = lastReplicatedTime;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get initial replication details.
+ *
+ * @return the initialReplicationDetails value
+ */
+ public InitialReplicationDetails initialReplicationDetails() {
+ return this.initialReplicationDetails;
+ }
+
+ /**
+ * Set initial replication details.
+ *
+ * @param initialReplicationDetails the initialReplicationDetails value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withInitialReplicationDetails(InitialReplicationDetails initialReplicationDetails) {
+ this.initialReplicationDetails = initialReplicationDetails;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the selected recovery azure network Id.
+ *
+ * @return the selectedRecoveryAzureNetworkId value
+ */
+ public String selectedRecoveryAzureNetworkId() {
+ return this.selectedRecoveryAzureNetworkId;
+ }
+
+ /**
+ * Set the selected recovery azure network Id.
+ *
+ * @param selectedRecoveryAzureNetworkId the selectedRecoveryAzureNetworkId value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withSelectedRecoveryAzureNetworkId(String selectedRecoveryAzureNetworkId) {
+ this.selectedRecoveryAzureNetworkId = selectedRecoveryAzureNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the encryption info.
+ *
+ * @return the encryption value
+ */
+ public String encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set the encryption info.
+ *
+ * @param encryption the encryption value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withEncryption(String encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get the operating system info.
+ *
+ * @return the oSDetails value
+ */
+ public OSDetails oSDetails() {
+ return this.oSDetails;
+ }
+
+ /**
+ * Set the operating system info.
+ *
+ * @param oSDetails the oSDetails value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withOSDetails(OSDetails oSDetails) {
+ this.oSDetails = oSDetails;
+ return this;
+ }
+
+ /**
+ * Get the RAM size of the VM on the primary side.
+ *
+ * @return the sourceVmRAMSizeInMB value
+ */
+ public Integer sourceVmRAMSizeInMB() {
+ return this.sourceVmRAMSizeInMB;
+ }
+
+ /**
+ * Set the RAM size of the VM on the primary side.
+ *
+ * @param sourceVmRAMSizeInMB the sourceVmRAMSizeInMB value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withSourceVmRAMSizeInMB(Integer sourceVmRAMSizeInMB) {
+ this.sourceVmRAMSizeInMB = sourceVmRAMSizeInMB;
+ return this;
+ }
+
+ /**
+ * Get the CPU count of the VM on the primary side.
+ *
+ * @return the sourceVmCPUCount value
+ */
+ public Integer sourceVmCPUCount() {
+ return this.sourceVmCPUCount;
+ }
+
+ /**
+ * Set the CPU count of the VM on the primary side.
+ *
+ * @param sourceVmCPUCount the sourceVmCPUCount value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withSourceVmCPUCount(Integer sourceVmCPUCount) {
+ this.sourceVmCPUCount = sourceVmCPUCount;
+ return this;
+ }
+
+ /**
+ * Get the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @return the enableRDPOnTargetOption value
+ */
+ public String enableRDPOnTargetOption() {
+ return this.enableRDPOnTargetOption;
+ }
+
+ /**
+ * Set the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @param enableRDPOnTargetOption the enableRDPOnTargetOption value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withEnableRDPOnTargetOption(String enableRDPOnTargetOption) {
+ this.enableRDPOnTargetOption = enableRDPOnTargetOption;
+ return this;
+ }
+
+ /**
+ * Get the target resource group Id.
+ *
+ * @return the recoveryAzureResourceGroupId value
+ */
+ public String recoveryAzureResourceGroupId() {
+ return this.recoveryAzureResourceGroupId;
+ }
+
+ /**
+ * Set the target resource group Id.
+ *
+ * @param recoveryAzureResourceGroupId the recoveryAzureResourceGroupId value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAzureResourceGroupId(String recoveryAzureResourceGroupId) {
+ this.recoveryAzureResourceGroupId = recoveryAzureResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set Id.
+ *
+ * @return the recoveryAvailabilitySetId value
+ */
+ public String recoveryAvailabilitySetId() {
+ return this.recoveryAvailabilitySetId;
+ }
+
+ /**
+ * Set the recovery availability set Id.
+ *
+ * @param recoveryAvailabilitySetId the recoveryAvailabilitySetId value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withRecoveryAvailabilitySetId(String recoveryAvailabilitySetId) {
+ this.recoveryAvailabilitySetId = recoveryAvailabilitySetId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+ /**
+ * Get license Type of the VM to be used.
+ *
+ * @return the licenseType value
+ */
+ public String licenseType() {
+ return this.licenseType;
+ }
+
+ /**
+ * Set license Type of the VM to be used.
+ *
+ * @param licenseType the licenseType value to set
+ * @return the HyperVReplicaAzureReplicationDetails object itself.
+ */
+ public HyperVReplicaAzureReplicationDetails withLicenseType(String licenseType) {
+ this.licenseType = licenseType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReprotectInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReprotectInput.java
new file mode 100644
index 0000000000000..a152422d11476
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureReprotectInput.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure specific reprotect input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureReprotectInput extends ReverseReplicationProviderSpecificInput {
+ /**
+ * The Hyper-V host Vm Id.
+ */
+ @JsonProperty(value = "hvHostVmId")
+ private String hvHostVmId;
+
+ /**
+ * The Vm Name.
+ */
+ @JsonProperty(value = "vmName")
+ private String vmName;
+
+ /**
+ * The OS type associated with vm.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The OS disk VHD id associated with vm.
+ */
+ @JsonProperty(value = "vHDId")
+ private String vHDId;
+
+ /**
+ * The storage account name.
+ */
+ @JsonProperty(value = "storageAccountId")
+ private String storageAccountId;
+
+ /**
+ * The storage account to be used for logging during replication.
+ */
+ @JsonProperty(value = "logStorageAccountId")
+ private String logStorageAccountId;
+
+ /**
+ * Get the Hyper-V host Vm Id.
+ *
+ * @return the hvHostVmId value
+ */
+ public String hvHostVmId() {
+ return this.hvHostVmId;
+ }
+
+ /**
+ * Set the Hyper-V host Vm Id.
+ *
+ * @param hvHostVmId the hvHostVmId value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withHvHostVmId(String hvHostVmId) {
+ this.hvHostVmId = hvHostVmId;
+ return this;
+ }
+
+ /**
+ * Get the Vm Name.
+ *
+ * @return the vmName value
+ */
+ public String vmName() {
+ return this.vmName;
+ }
+
+ /**
+ * Set the Vm Name.
+ *
+ * @param vmName the vmName value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withVmName(String vmName) {
+ this.vmName = vmName;
+ return this;
+ }
+
+ /**
+ * Get the OS type associated with vm.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type associated with vm.
+ *
+ * @param osType the osType value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the OS disk VHD id associated with vm.
+ *
+ * @return the vHDId value
+ */
+ public String vHDId() {
+ return this.vHDId;
+ }
+
+ /**
+ * Set the OS disk VHD id associated with vm.
+ *
+ * @param vHDId the vHDId value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withVHDId(String vHDId) {
+ this.vHDId = vHDId;
+ return this;
+ }
+
+ /**
+ * Get the storage account name.
+ *
+ * @return the storageAccountId value
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set the storage account name.
+ *
+ * @param storageAccountId the storageAccountId value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the storage account to be used for logging during replication.
+ *
+ * @return the logStorageAccountId value
+ */
+ public String logStorageAccountId() {
+ return this.logStorageAccountId;
+ }
+
+ /**
+ * Set the storage account to be used for logging during replication.
+ *
+ * @param logStorageAccountId the logStorageAccountId value to set
+ * @return the HyperVReplicaAzureReprotectInput object itself.
+ */
+ public HyperVReplicaAzureReprotectInput withLogStorageAccountId(String logStorageAccountId) {
+ this.logStorageAccountId = logStorageAccountId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureRpRecoveryPointType.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureRpRecoveryPointType.java
new file mode 100644
index 0000000000000..e3666c529d2cb
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureRpRecoveryPointType.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for HyperVReplicaAzureRpRecoveryPointType.
+ */
+public enum HyperVReplicaAzureRpRecoveryPointType {
+ /** Enum value Latest. */
+ LATEST("Latest"),
+
+ /** Enum value LatestApplicationConsistent. */
+ LATEST_APPLICATION_CONSISTENT("LatestApplicationConsistent"),
+
+ /** Enum value LatestProcessed. */
+ LATEST_PROCESSED("LatestProcessed");
+
+ /** The actual serialized value for a HyperVReplicaAzureRpRecoveryPointType instance. */
+ private String value;
+
+ HyperVReplicaAzureRpRecoveryPointType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a HyperVReplicaAzureRpRecoveryPointType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed HyperVReplicaAzureRpRecoveryPointType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static HyperVReplicaAzureRpRecoveryPointType fromString(String value) {
+ HyperVReplicaAzureRpRecoveryPointType[] items = HyperVReplicaAzureRpRecoveryPointType.values();
+ for (HyperVReplicaAzureRpRecoveryPointType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureUpdateReplicationProtectedItemInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureUpdateReplicationProtectedItemInput.java
new file mode 100644
index 0000000000000..d39546232f945
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaAzureUpdateReplicationProtectedItemInput.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HyperV replica Azure input to update replication protected item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaAzure")
+public class HyperVReplicaAzureUpdateReplicationProtectedItemInput extends UpdateReplicationProtectedItemProviderInput {
+ /**
+ * The recovery Azure resource group Id for classic deployment.
+ */
+ @JsonProperty(value = "recoveryAzureV1ResourceGroupId")
+ private String recoveryAzureV1ResourceGroupId;
+
+ /**
+ * The recovery Azure resource group Id for resource manager deployment.
+ */
+ @JsonProperty(value = "recoveryAzureV2ResourceGroupId")
+ private String recoveryAzureV2ResourceGroupId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * Get the recovery Azure resource group Id for classic deployment.
+ *
+ * @return the recoveryAzureV1ResourceGroupId value
+ */
+ public String recoveryAzureV1ResourceGroupId() {
+ return this.recoveryAzureV1ResourceGroupId;
+ }
+
+ /**
+ * Set the recovery Azure resource group Id for classic deployment.
+ *
+ * @param recoveryAzureV1ResourceGroupId the recoveryAzureV1ResourceGroupId value to set
+ * @return the HyperVReplicaAzureUpdateReplicationProtectedItemInput object itself.
+ */
+ public HyperVReplicaAzureUpdateReplicationProtectedItemInput withRecoveryAzureV1ResourceGroupId(String recoveryAzureV1ResourceGroupId) {
+ this.recoveryAzureV1ResourceGroupId = recoveryAzureV1ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery Azure resource group Id for resource manager deployment.
+ *
+ * @return the recoveryAzureV2ResourceGroupId value
+ */
+ public String recoveryAzureV2ResourceGroupId() {
+ return this.recoveryAzureV2ResourceGroupId;
+ }
+
+ /**
+ * Set the recovery Azure resource group Id for resource manager deployment.
+ *
+ * @param recoveryAzureV2ResourceGroupId the recoveryAzureV2ResourceGroupId value to set
+ * @return the HyperVReplicaAzureUpdateReplicationProtectedItemInput object itself.
+ */
+ public HyperVReplicaAzureUpdateReplicationProtectedItemInput withRecoveryAzureV2ResourceGroupId(String recoveryAzureV2ResourceGroupId) {
+ this.recoveryAzureV2ResourceGroupId = recoveryAzureV2ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the HyperVReplicaAzureUpdateReplicationProtectedItemInput object itself.
+ */
+ public HyperVReplicaAzureUpdateReplicationProtectedItemInput withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseEventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseEventDetails.java
new file mode 100644
index 0000000000000..ad95e3a236be1
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseEventDetails.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Abstract model class for event details of a HyperVReplica E2E event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaBaseEventDetails")
+public class HyperVReplicaBaseEventDetails extends EventProviderSpecificDetails {
+ /**
+ * The container friendly name.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * The fabric friendly name.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * The remote container name.
+ */
+ @JsonProperty(value = "remoteContainerName")
+ private String remoteContainerName;
+
+ /**
+ * The remote fabric name.
+ */
+ @JsonProperty(value = "remoteFabricName")
+ private String remoteFabricName;
+
+ /**
+ * Get the container friendly name.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set the container friendly name.
+ *
+ * @param containerName the containerName value to set
+ * @return the HyperVReplicaBaseEventDetails object itself.
+ */
+ public HyperVReplicaBaseEventDetails withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the fabric friendly name.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set the fabric friendly name.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the HyperVReplicaBaseEventDetails object itself.
+ */
+ public HyperVReplicaBaseEventDetails withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get the remote container name.
+ *
+ * @return the remoteContainerName value
+ */
+ public String remoteContainerName() {
+ return this.remoteContainerName;
+ }
+
+ /**
+ * Set the remote container name.
+ *
+ * @param remoteContainerName the remoteContainerName value to set
+ * @return the HyperVReplicaBaseEventDetails object itself.
+ */
+ public HyperVReplicaBaseEventDetails withRemoteContainerName(String remoteContainerName) {
+ this.remoteContainerName = remoteContainerName;
+ return this;
+ }
+
+ /**
+ * Get the remote fabric name.
+ *
+ * @return the remoteFabricName value
+ */
+ public String remoteFabricName() {
+ return this.remoteFabricName;
+ }
+
+ /**
+ * Set the remote fabric name.
+ *
+ * @param remoteFabricName the remoteFabricName value to set
+ * @return the HyperVReplicaBaseEventDetails object itself.
+ */
+ public HyperVReplicaBaseEventDetails withRemoteFabricName(String remoteFabricName) {
+ this.remoteFabricName = remoteFabricName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBasePolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBasePolicyDetails.java
new file mode 100644
index 0000000000000..e626ae257f1b5
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBasePolicyDetails.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Base class for HyperVReplica policy details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaBasePolicyDetails")
+public class HyperVReplicaBasePolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * A value indicating the number of recovery points.
+ */
+ @JsonProperty(value = "recoveryPoints")
+ private Integer recoveryPoints;
+
+ /**
+ * A value indicating the application consistent frequency.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * A value indicating whether compression has to be enabled.
+ */
+ @JsonProperty(value = "compression")
+ private String compression;
+
+ /**
+ * A value indicating whether IR is online.
+ */
+ @JsonProperty(value = "initialReplicationMethod")
+ private String initialReplicationMethod;
+
+ /**
+ * A value indicating the online IR start time.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating the offline IR import path.
+ */
+ @JsonProperty(value = "offlineReplicationImportPath")
+ private String offlineReplicationImportPath;
+
+ /**
+ * A value indicating the offline IR export path.
+ */
+ @JsonProperty(value = "offlineReplicationExportPath")
+ private String offlineReplicationExportPath;
+
+ /**
+ * A value indicating the recovery HTTPS port.
+ */
+ @JsonProperty(value = "replicationPort")
+ private Integer replicationPort;
+
+ /**
+ * A value indicating the authentication type.
+ */
+ @JsonProperty(value = "allowedAuthenticationType")
+ private Integer allowedAuthenticationType;
+
+ /**
+ * A value indicating whether the VM has to be auto deleted. Supported
+ * Values: String.Empty, None, OnRecoveryCloud.
+ */
+ @JsonProperty(value = "replicaDeletionOption")
+ private String replicaDeletionOption;
+
+ /**
+ * Get a value indicating the number of recovery points.
+ *
+ * @return the recoveryPoints value
+ */
+ public Integer recoveryPoints() {
+ return this.recoveryPoints;
+ }
+
+ /**
+ * Set a value indicating the number of recovery points.
+ *
+ * @param recoveryPoints the recoveryPoints value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withRecoveryPoints(Integer recoveryPoints) {
+ this.recoveryPoints = recoveryPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the application consistent frequency.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set a value indicating the application consistent frequency.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether compression has to be enabled.
+ *
+ * @return the compression value
+ */
+ public String compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set a value indicating whether compression has to be enabled.
+ *
+ * @param compression the compression value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withCompression(String compression) {
+ this.compression = compression;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether IR is online.
+ *
+ * @return the initialReplicationMethod value
+ */
+ public String initialReplicationMethod() {
+ return this.initialReplicationMethod;
+ }
+
+ /**
+ * Set a value indicating whether IR is online.
+ *
+ * @param initialReplicationMethod the initialReplicationMethod value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withInitialReplicationMethod(String initialReplicationMethod) {
+ this.initialReplicationMethod = initialReplicationMethod;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the online IR start time.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set a value indicating the online IR start time.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR import path.
+ *
+ * @return the offlineReplicationImportPath value
+ */
+ public String offlineReplicationImportPath() {
+ return this.offlineReplicationImportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR import path.
+ *
+ * @param offlineReplicationImportPath the offlineReplicationImportPath value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withOfflineReplicationImportPath(String offlineReplicationImportPath) {
+ this.offlineReplicationImportPath = offlineReplicationImportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR export path.
+ *
+ * @return the offlineReplicationExportPath value
+ */
+ public String offlineReplicationExportPath() {
+ return this.offlineReplicationExportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR export path.
+ *
+ * @param offlineReplicationExportPath the offlineReplicationExportPath value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withOfflineReplicationExportPath(String offlineReplicationExportPath) {
+ this.offlineReplicationExportPath = offlineReplicationExportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the recovery HTTPS port.
+ *
+ * @return the replicationPort value
+ */
+ public Integer replicationPort() {
+ return this.replicationPort;
+ }
+
+ /**
+ * Set a value indicating the recovery HTTPS port.
+ *
+ * @param replicationPort the replicationPort value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withReplicationPort(Integer replicationPort) {
+ this.replicationPort = replicationPort;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the authentication type.
+ *
+ * @return the allowedAuthenticationType value
+ */
+ public Integer allowedAuthenticationType() {
+ return this.allowedAuthenticationType;
+ }
+
+ /**
+ * Set a value indicating the authentication type.
+ *
+ * @param allowedAuthenticationType the allowedAuthenticationType value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withAllowedAuthenticationType(Integer allowedAuthenticationType) {
+ this.allowedAuthenticationType = allowedAuthenticationType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @return the replicaDeletionOption value
+ */
+ public String replicaDeletionOption() {
+ return this.replicaDeletionOption;
+ }
+
+ /**
+ * Set a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @param replicaDeletionOption the replicaDeletionOption value to set
+ * @return the HyperVReplicaBasePolicyDetails object itself.
+ */
+ public HyperVReplicaBasePolicyDetails withReplicaDeletionOption(String replicaDeletionOption) {
+ this.replicaDeletionOption = replicaDeletionOption;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseReplicationDetails.java
new file mode 100644
index 0000000000000..741b885992535
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBaseReplicationDetails.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper V replica provider specific settings base class.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplicaBaseReplicationDetails")
+public class HyperVReplicaBaseReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The Last replication time.
+ */
+ @JsonProperty(value = "lastReplicatedTime")
+ private DateTime lastReplicatedTime;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * Initial replication details.
+ */
+ @JsonProperty(value = "initialReplicationDetails")
+ private InitialReplicationDetails initialReplicationDetails;
+
+ /**
+ * VM disk details.
+ */
+ @JsonProperty(value = "vMDiskDetails")
+ private List vMDiskDetails;
+
+ /**
+ * Get the Last replication time.
+ *
+ * @return the lastReplicatedTime value
+ */
+ public DateTime lastReplicatedTime() {
+ return this.lastReplicatedTime;
+ }
+
+ /**
+ * Set the Last replication time.
+ *
+ * @param lastReplicatedTime the lastReplicatedTime value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withLastReplicatedTime(DateTime lastReplicatedTime) {
+ this.lastReplicatedTime = lastReplicatedTime;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get initial replication details.
+ *
+ * @return the initialReplicationDetails value
+ */
+ public InitialReplicationDetails initialReplicationDetails() {
+ return this.initialReplicationDetails;
+ }
+
+ /**
+ * Set initial replication details.
+ *
+ * @param initialReplicationDetails the initialReplicationDetails value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withInitialReplicationDetails(InitialReplicationDetails initialReplicationDetails) {
+ this.initialReplicationDetails = initialReplicationDetails;
+ return this;
+ }
+
+ /**
+ * Get vM disk details.
+ *
+ * @return the vMDiskDetails value
+ */
+ public List vMDiskDetails() {
+ return this.vMDiskDetails;
+ }
+
+ /**
+ * Set vM disk details.
+ *
+ * @param vMDiskDetails the vMDiskDetails value to set
+ * @return the HyperVReplicaBaseReplicationDetails object itself.
+ */
+ public HyperVReplicaBaseReplicationDetails withVMDiskDetails(List vMDiskDetails) {
+ this.vMDiskDetails = vMDiskDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyDetails.java
new file mode 100644
index 0000000000000..e17f3f188a353
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyDetails.java
@@ -0,0 +1,308 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper-V Replica Blue specific protection profile details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012R2")
+public class HyperVReplicaBluePolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * A value indicating the replication interval.
+ */
+ @JsonProperty(value = "replicationFrequencyInSeconds")
+ private Integer replicationFrequencyInSeconds;
+
+ /**
+ * A value indicating the number of recovery points.
+ */
+ @JsonProperty(value = "recoveryPoints")
+ private Integer recoveryPoints;
+
+ /**
+ * A value indicating the application consistent frequency.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * A value indicating whether compression has to be enabled.
+ */
+ @JsonProperty(value = "compression")
+ private String compression;
+
+ /**
+ * A value indicating whether IR is online.
+ */
+ @JsonProperty(value = "initialReplicationMethod")
+ private String initialReplicationMethod;
+
+ /**
+ * A value indicating the online IR start time.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating the offline IR import path.
+ */
+ @JsonProperty(value = "offlineReplicationImportPath")
+ private String offlineReplicationImportPath;
+
+ /**
+ * A value indicating the offline IR export path.
+ */
+ @JsonProperty(value = "offlineReplicationExportPath")
+ private String offlineReplicationExportPath;
+
+ /**
+ * A value indicating the recovery HTTPS port.
+ */
+ @JsonProperty(value = "replicationPort")
+ private Integer replicationPort;
+
+ /**
+ * A value indicating the authentication type.
+ */
+ @JsonProperty(value = "allowedAuthenticationType")
+ private Integer allowedAuthenticationType;
+
+ /**
+ * A value indicating whether the VM has to be auto deleted. Supported
+ * Values: String.Empty, None, OnRecoveryCloud.
+ */
+ @JsonProperty(value = "replicaDeletionOption")
+ private String replicaDeletionOption;
+
+ /**
+ * Get a value indicating the replication interval.
+ *
+ * @return the replicationFrequencyInSeconds value
+ */
+ public Integer replicationFrequencyInSeconds() {
+ return this.replicationFrequencyInSeconds;
+ }
+
+ /**
+ * Set a value indicating the replication interval.
+ *
+ * @param replicationFrequencyInSeconds the replicationFrequencyInSeconds value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withReplicationFrequencyInSeconds(Integer replicationFrequencyInSeconds) {
+ this.replicationFrequencyInSeconds = replicationFrequencyInSeconds;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the number of recovery points.
+ *
+ * @return the recoveryPoints value
+ */
+ public Integer recoveryPoints() {
+ return this.recoveryPoints;
+ }
+
+ /**
+ * Set a value indicating the number of recovery points.
+ *
+ * @param recoveryPoints the recoveryPoints value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withRecoveryPoints(Integer recoveryPoints) {
+ this.recoveryPoints = recoveryPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the application consistent frequency.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set a value indicating the application consistent frequency.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether compression has to be enabled.
+ *
+ * @return the compression value
+ */
+ public String compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set a value indicating whether compression has to be enabled.
+ *
+ * @param compression the compression value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withCompression(String compression) {
+ this.compression = compression;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether IR is online.
+ *
+ * @return the initialReplicationMethod value
+ */
+ public String initialReplicationMethod() {
+ return this.initialReplicationMethod;
+ }
+
+ /**
+ * Set a value indicating whether IR is online.
+ *
+ * @param initialReplicationMethod the initialReplicationMethod value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withInitialReplicationMethod(String initialReplicationMethod) {
+ this.initialReplicationMethod = initialReplicationMethod;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the online IR start time.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set a value indicating the online IR start time.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR import path.
+ *
+ * @return the offlineReplicationImportPath value
+ */
+ public String offlineReplicationImportPath() {
+ return this.offlineReplicationImportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR import path.
+ *
+ * @param offlineReplicationImportPath the offlineReplicationImportPath value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withOfflineReplicationImportPath(String offlineReplicationImportPath) {
+ this.offlineReplicationImportPath = offlineReplicationImportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR export path.
+ *
+ * @return the offlineReplicationExportPath value
+ */
+ public String offlineReplicationExportPath() {
+ return this.offlineReplicationExportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR export path.
+ *
+ * @param offlineReplicationExportPath the offlineReplicationExportPath value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withOfflineReplicationExportPath(String offlineReplicationExportPath) {
+ this.offlineReplicationExportPath = offlineReplicationExportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the recovery HTTPS port.
+ *
+ * @return the replicationPort value
+ */
+ public Integer replicationPort() {
+ return this.replicationPort;
+ }
+
+ /**
+ * Set a value indicating the recovery HTTPS port.
+ *
+ * @param replicationPort the replicationPort value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withReplicationPort(Integer replicationPort) {
+ this.replicationPort = replicationPort;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the authentication type.
+ *
+ * @return the allowedAuthenticationType value
+ */
+ public Integer allowedAuthenticationType() {
+ return this.allowedAuthenticationType;
+ }
+
+ /**
+ * Set a value indicating the authentication type.
+ *
+ * @param allowedAuthenticationType the allowedAuthenticationType value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withAllowedAuthenticationType(Integer allowedAuthenticationType) {
+ this.allowedAuthenticationType = allowedAuthenticationType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @return the replicaDeletionOption value
+ */
+ public String replicaDeletionOption() {
+ return this.replicaDeletionOption;
+ }
+
+ /**
+ * Set a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @param replicaDeletionOption the replicaDeletionOption value to set
+ * @return the HyperVReplicaBluePolicyDetails object itself.
+ */
+ public HyperVReplicaBluePolicyDetails withReplicaDeletionOption(String replicaDeletionOption) {
+ this.replicaDeletionOption = replicaDeletionOption;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyInput.java
new file mode 100644
index 0000000000000..5c41515a89910
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBluePolicyInput.java
@@ -0,0 +1,307 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HyperV Replica Blue policy input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012R2")
+public class HyperVReplicaBluePolicyInput extends PolicyProviderSpecificInput {
+ /**
+ * A value indicating the replication interval.
+ */
+ @JsonProperty(value = "replicationFrequencyInSeconds")
+ private Integer replicationFrequencyInSeconds;
+
+ /**
+ * A value indicating the number of recovery points.
+ */
+ @JsonProperty(value = "recoveryPoints")
+ private Integer recoveryPoints;
+
+ /**
+ * A value indicating the application consistent frequency.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * A value indicating whether compression has to be enabled.
+ */
+ @JsonProperty(value = "compression")
+ private String compression;
+
+ /**
+ * A value indicating whether IR is online.
+ */
+ @JsonProperty(value = "initialReplicationMethod")
+ private String initialReplicationMethod;
+
+ /**
+ * A value indicating the online IR start time.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating the offline IR import path.
+ */
+ @JsonProperty(value = "offlineReplicationImportPath")
+ private String offlineReplicationImportPath;
+
+ /**
+ * A value indicating the offline IR export path.
+ */
+ @JsonProperty(value = "offlineReplicationExportPath")
+ private String offlineReplicationExportPath;
+
+ /**
+ * A value indicating the recovery HTTPS port.
+ */
+ @JsonProperty(value = "replicationPort")
+ private Integer replicationPort;
+
+ /**
+ * A value indicating the authentication type.
+ */
+ @JsonProperty(value = "allowedAuthenticationType")
+ private Integer allowedAuthenticationType;
+
+ /**
+ * A value indicating whether the VM has to be auto deleted.
+ */
+ @JsonProperty(value = "replicaDeletion")
+ private String replicaDeletion;
+
+ /**
+ * Get a value indicating the replication interval.
+ *
+ * @return the replicationFrequencyInSeconds value
+ */
+ public Integer replicationFrequencyInSeconds() {
+ return this.replicationFrequencyInSeconds;
+ }
+
+ /**
+ * Set a value indicating the replication interval.
+ *
+ * @param replicationFrequencyInSeconds the replicationFrequencyInSeconds value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withReplicationFrequencyInSeconds(Integer replicationFrequencyInSeconds) {
+ this.replicationFrequencyInSeconds = replicationFrequencyInSeconds;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the number of recovery points.
+ *
+ * @return the recoveryPoints value
+ */
+ public Integer recoveryPoints() {
+ return this.recoveryPoints;
+ }
+
+ /**
+ * Set a value indicating the number of recovery points.
+ *
+ * @param recoveryPoints the recoveryPoints value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withRecoveryPoints(Integer recoveryPoints) {
+ this.recoveryPoints = recoveryPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the application consistent frequency.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set a value indicating the application consistent frequency.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether compression has to be enabled.
+ *
+ * @return the compression value
+ */
+ public String compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set a value indicating whether compression has to be enabled.
+ *
+ * @param compression the compression value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withCompression(String compression) {
+ this.compression = compression;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether IR is online.
+ *
+ * @return the initialReplicationMethod value
+ */
+ public String initialReplicationMethod() {
+ return this.initialReplicationMethod;
+ }
+
+ /**
+ * Set a value indicating whether IR is online.
+ *
+ * @param initialReplicationMethod the initialReplicationMethod value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withInitialReplicationMethod(String initialReplicationMethod) {
+ this.initialReplicationMethod = initialReplicationMethod;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the online IR start time.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set a value indicating the online IR start time.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR import path.
+ *
+ * @return the offlineReplicationImportPath value
+ */
+ public String offlineReplicationImportPath() {
+ return this.offlineReplicationImportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR import path.
+ *
+ * @param offlineReplicationImportPath the offlineReplicationImportPath value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withOfflineReplicationImportPath(String offlineReplicationImportPath) {
+ this.offlineReplicationImportPath = offlineReplicationImportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR export path.
+ *
+ * @return the offlineReplicationExportPath value
+ */
+ public String offlineReplicationExportPath() {
+ return this.offlineReplicationExportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR export path.
+ *
+ * @param offlineReplicationExportPath the offlineReplicationExportPath value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withOfflineReplicationExportPath(String offlineReplicationExportPath) {
+ this.offlineReplicationExportPath = offlineReplicationExportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the recovery HTTPS port.
+ *
+ * @return the replicationPort value
+ */
+ public Integer replicationPort() {
+ return this.replicationPort;
+ }
+
+ /**
+ * Set a value indicating the recovery HTTPS port.
+ *
+ * @param replicationPort the replicationPort value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withReplicationPort(Integer replicationPort) {
+ this.replicationPort = replicationPort;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the authentication type.
+ *
+ * @return the allowedAuthenticationType value
+ */
+ public Integer allowedAuthenticationType() {
+ return this.allowedAuthenticationType;
+ }
+
+ /**
+ * Set a value indicating the authentication type.
+ *
+ * @param allowedAuthenticationType the allowedAuthenticationType value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withAllowedAuthenticationType(Integer allowedAuthenticationType) {
+ this.allowedAuthenticationType = allowedAuthenticationType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the VM has to be auto deleted.
+ *
+ * @return the replicaDeletion value
+ */
+ public String replicaDeletion() {
+ return this.replicaDeletion;
+ }
+
+ /**
+ * Set a value indicating whether the VM has to be auto deleted.
+ *
+ * @param replicaDeletion the replicaDeletion value to set
+ * @return the HyperVReplicaBluePolicyInput object itself.
+ */
+ public HyperVReplicaBluePolicyInput withReplicaDeletion(String replicaDeletion) {
+ this.replicaDeletion = replicaDeletion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBlueReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBlueReplicationDetails.java
new file mode 100644
index 0000000000000..fde12977f8293
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaBlueReplicationDetails.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HyperV replica 2012 R2 (Blue) replication details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012R2")
+public class HyperVReplicaBlueReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The Last replication time.
+ */
+ @JsonProperty(value = "lastReplicatedTime")
+ private DateTime lastReplicatedTime;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * Initial replication details.
+ */
+ @JsonProperty(value = "initialReplicationDetails")
+ private InitialReplicationDetails initialReplicationDetails;
+
+ /**
+ * VM disk details.
+ */
+ @JsonProperty(value = "vMDiskDetails")
+ private List vMDiskDetails;
+
+ /**
+ * Get the Last replication time.
+ *
+ * @return the lastReplicatedTime value
+ */
+ public DateTime lastReplicatedTime() {
+ return this.lastReplicatedTime;
+ }
+
+ /**
+ * Set the Last replication time.
+ *
+ * @param lastReplicatedTime the lastReplicatedTime value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withLastReplicatedTime(DateTime lastReplicatedTime) {
+ this.lastReplicatedTime = lastReplicatedTime;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get initial replication details.
+ *
+ * @return the initialReplicationDetails value
+ */
+ public InitialReplicationDetails initialReplicationDetails() {
+ return this.initialReplicationDetails;
+ }
+
+ /**
+ * Set initial replication details.
+ *
+ * @param initialReplicationDetails the initialReplicationDetails value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withInitialReplicationDetails(InitialReplicationDetails initialReplicationDetails) {
+ this.initialReplicationDetails = initialReplicationDetails;
+ return this;
+ }
+
+ /**
+ * Get vM disk details.
+ *
+ * @return the vMDiskDetails value
+ */
+ public List vMDiskDetails() {
+ return this.vMDiskDetails;
+ }
+
+ /**
+ * Set vM disk details.
+ *
+ * @param vMDiskDetails the vMDiskDetails value to set
+ * @return the HyperVReplicaBlueReplicationDetails object itself.
+ */
+ public HyperVReplicaBlueReplicationDetails withVMDiskDetails(List vMDiskDetails) {
+ this.vMDiskDetails = vMDiskDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyDetails.java
new file mode 100644
index 0000000000000..94f4146ce2f0d
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyDetails.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper-V Replica Blue specific protection profile details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012")
+public class HyperVReplicaPolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * A value indicating the number of recovery points.
+ */
+ @JsonProperty(value = "recoveryPoints")
+ private Integer recoveryPoints;
+
+ /**
+ * A value indicating the application consistent frequency.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * A value indicating whether compression has to be enabled.
+ */
+ @JsonProperty(value = "compression")
+ private String compression;
+
+ /**
+ * A value indicating whether IR is online.
+ */
+ @JsonProperty(value = "initialReplicationMethod")
+ private String initialReplicationMethod;
+
+ /**
+ * A value indicating the online IR start time.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating the offline IR import path.
+ */
+ @JsonProperty(value = "offlineReplicationImportPath")
+ private String offlineReplicationImportPath;
+
+ /**
+ * A value indicating the offline IR export path.
+ */
+ @JsonProperty(value = "offlineReplicationExportPath")
+ private String offlineReplicationExportPath;
+
+ /**
+ * A value indicating the recovery HTTPS port.
+ */
+ @JsonProperty(value = "replicationPort")
+ private Integer replicationPort;
+
+ /**
+ * A value indicating the authentication type.
+ */
+ @JsonProperty(value = "allowedAuthenticationType")
+ private Integer allowedAuthenticationType;
+
+ /**
+ * A value indicating whether the VM has to be auto deleted. Supported
+ * Values: String.Empty, None, OnRecoveryCloud.
+ */
+ @JsonProperty(value = "replicaDeletionOption")
+ private String replicaDeletionOption;
+
+ /**
+ * Get a value indicating the number of recovery points.
+ *
+ * @return the recoveryPoints value
+ */
+ public Integer recoveryPoints() {
+ return this.recoveryPoints;
+ }
+
+ /**
+ * Set a value indicating the number of recovery points.
+ *
+ * @param recoveryPoints the recoveryPoints value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withRecoveryPoints(Integer recoveryPoints) {
+ this.recoveryPoints = recoveryPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the application consistent frequency.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set a value indicating the application consistent frequency.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether compression has to be enabled.
+ *
+ * @return the compression value
+ */
+ public String compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set a value indicating whether compression has to be enabled.
+ *
+ * @param compression the compression value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withCompression(String compression) {
+ this.compression = compression;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether IR is online.
+ *
+ * @return the initialReplicationMethod value
+ */
+ public String initialReplicationMethod() {
+ return this.initialReplicationMethod;
+ }
+
+ /**
+ * Set a value indicating whether IR is online.
+ *
+ * @param initialReplicationMethod the initialReplicationMethod value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withInitialReplicationMethod(String initialReplicationMethod) {
+ this.initialReplicationMethod = initialReplicationMethod;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the online IR start time.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set a value indicating the online IR start time.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR import path.
+ *
+ * @return the offlineReplicationImportPath value
+ */
+ public String offlineReplicationImportPath() {
+ return this.offlineReplicationImportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR import path.
+ *
+ * @param offlineReplicationImportPath the offlineReplicationImportPath value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withOfflineReplicationImportPath(String offlineReplicationImportPath) {
+ this.offlineReplicationImportPath = offlineReplicationImportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR export path.
+ *
+ * @return the offlineReplicationExportPath value
+ */
+ public String offlineReplicationExportPath() {
+ return this.offlineReplicationExportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR export path.
+ *
+ * @param offlineReplicationExportPath the offlineReplicationExportPath value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withOfflineReplicationExportPath(String offlineReplicationExportPath) {
+ this.offlineReplicationExportPath = offlineReplicationExportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the recovery HTTPS port.
+ *
+ * @return the replicationPort value
+ */
+ public Integer replicationPort() {
+ return this.replicationPort;
+ }
+
+ /**
+ * Set a value indicating the recovery HTTPS port.
+ *
+ * @param replicationPort the replicationPort value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withReplicationPort(Integer replicationPort) {
+ this.replicationPort = replicationPort;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the authentication type.
+ *
+ * @return the allowedAuthenticationType value
+ */
+ public Integer allowedAuthenticationType() {
+ return this.allowedAuthenticationType;
+ }
+
+ /**
+ * Set a value indicating the authentication type.
+ *
+ * @param allowedAuthenticationType the allowedAuthenticationType value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withAllowedAuthenticationType(Integer allowedAuthenticationType) {
+ this.allowedAuthenticationType = allowedAuthenticationType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @return the replicaDeletionOption value
+ */
+ public String replicaDeletionOption() {
+ return this.replicaDeletionOption;
+ }
+
+ /**
+ * Set a value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud.
+ *
+ * @param replicaDeletionOption the replicaDeletionOption value to set
+ * @return the HyperVReplicaPolicyDetails object itself.
+ */
+ public HyperVReplicaPolicyDetails withReplicaDeletionOption(String replicaDeletionOption) {
+ this.replicaDeletionOption = replicaDeletionOption;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyInput.java
new file mode 100644
index 0000000000000..9972fca02645e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaPolicyInput.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper-V Replica specific protection profile Input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012")
+public class HyperVReplicaPolicyInput extends PolicyProviderSpecificInput {
+ /**
+ * A value indicating the number of recovery points.
+ */
+ @JsonProperty(value = "recoveryPoints")
+ private Integer recoveryPoints;
+
+ /**
+ * A value indicating the application consistent frequency.
+ */
+ @JsonProperty(value = "applicationConsistentSnapshotFrequencyInHours")
+ private Integer applicationConsistentSnapshotFrequencyInHours;
+
+ /**
+ * A value indicating whether compression has to be enabled.
+ */
+ @JsonProperty(value = "compression")
+ private String compression;
+
+ /**
+ * A value indicating whether IR is online.
+ */
+ @JsonProperty(value = "initialReplicationMethod")
+ private String initialReplicationMethod;
+
+ /**
+ * A value indicating the online IR start time.
+ */
+ @JsonProperty(value = "onlineReplicationStartTime")
+ private String onlineReplicationStartTime;
+
+ /**
+ * A value indicating the offline IR import path.
+ */
+ @JsonProperty(value = "offlineReplicationImportPath")
+ private String offlineReplicationImportPath;
+
+ /**
+ * A value indicating the offline IR export path.
+ */
+ @JsonProperty(value = "offlineReplicationExportPath")
+ private String offlineReplicationExportPath;
+
+ /**
+ * A value indicating the recovery HTTPS port.
+ */
+ @JsonProperty(value = "replicationPort")
+ private Integer replicationPort;
+
+ /**
+ * A value indicating the authentication type.
+ */
+ @JsonProperty(value = "allowedAuthenticationType")
+ private Integer allowedAuthenticationType;
+
+ /**
+ * A value indicating whether the VM has to be auto deleted.
+ */
+ @JsonProperty(value = "replicaDeletion")
+ private String replicaDeletion;
+
+ /**
+ * Get a value indicating the number of recovery points.
+ *
+ * @return the recoveryPoints value
+ */
+ public Integer recoveryPoints() {
+ return this.recoveryPoints;
+ }
+
+ /**
+ * Set a value indicating the number of recovery points.
+ *
+ * @param recoveryPoints the recoveryPoints value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withRecoveryPoints(Integer recoveryPoints) {
+ this.recoveryPoints = recoveryPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the application consistent frequency.
+ *
+ * @return the applicationConsistentSnapshotFrequencyInHours value
+ */
+ public Integer applicationConsistentSnapshotFrequencyInHours() {
+ return this.applicationConsistentSnapshotFrequencyInHours;
+ }
+
+ /**
+ * Set a value indicating the application consistent frequency.
+ *
+ * @param applicationConsistentSnapshotFrequencyInHours the applicationConsistentSnapshotFrequencyInHours value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withApplicationConsistentSnapshotFrequencyInHours(Integer applicationConsistentSnapshotFrequencyInHours) {
+ this.applicationConsistentSnapshotFrequencyInHours = applicationConsistentSnapshotFrequencyInHours;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether compression has to be enabled.
+ *
+ * @return the compression value
+ */
+ public String compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set a value indicating whether compression has to be enabled.
+ *
+ * @param compression the compression value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withCompression(String compression) {
+ this.compression = compression;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether IR is online.
+ *
+ * @return the initialReplicationMethod value
+ */
+ public String initialReplicationMethod() {
+ return this.initialReplicationMethod;
+ }
+
+ /**
+ * Set a value indicating whether IR is online.
+ *
+ * @param initialReplicationMethod the initialReplicationMethod value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withInitialReplicationMethod(String initialReplicationMethod) {
+ this.initialReplicationMethod = initialReplicationMethod;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the online IR start time.
+ *
+ * @return the onlineReplicationStartTime value
+ */
+ public String onlineReplicationStartTime() {
+ return this.onlineReplicationStartTime;
+ }
+
+ /**
+ * Set a value indicating the online IR start time.
+ *
+ * @param onlineReplicationStartTime the onlineReplicationStartTime value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withOnlineReplicationStartTime(String onlineReplicationStartTime) {
+ this.onlineReplicationStartTime = onlineReplicationStartTime;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR import path.
+ *
+ * @return the offlineReplicationImportPath value
+ */
+ public String offlineReplicationImportPath() {
+ return this.offlineReplicationImportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR import path.
+ *
+ * @param offlineReplicationImportPath the offlineReplicationImportPath value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withOfflineReplicationImportPath(String offlineReplicationImportPath) {
+ this.offlineReplicationImportPath = offlineReplicationImportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the offline IR export path.
+ *
+ * @return the offlineReplicationExportPath value
+ */
+ public String offlineReplicationExportPath() {
+ return this.offlineReplicationExportPath;
+ }
+
+ /**
+ * Set a value indicating the offline IR export path.
+ *
+ * @param offlineReplicationExportPath the offlineReplicationExportPath value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withOfflineReplicationExportPath(String offlineReplicationExportPath) {
+ this.offlineReplicationExportPath = offlineReplicationExportPath;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the recovery HTTPS port.
+ *
+ * @return the replicationPort value
+ */
+ public Integer replicationPort() {
+ return this.replicationPort;
+ }
+
+ /**
+ * Set a value indicating the recovery HTTPS port.
+ *
+ * @param replicationPort the replicationPort value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withReplicationPort(Integer replicationPort) {
+ this.replicationPort = replicationPort;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the authentication type.
+ *
+ * @return the allowedAuthenticationType value
+ */
+ public Integer allowedAuthenticationType() {
+ return this.allowedAuthenticationType;
+ }
+
+ /**
+ * Set a value indicating the authentication type.
+ *
+ * @param allowedAuthenticationType the allowedAuthenticationType value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withAllowedAuthenticationType(Integer allowedAuthenticationType) {
+ this.allowedAuthenticationType = allowedAuthenticationType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the VM has to be auto deleted.
+ *
+ * @return the replicaDeletion value
+ */
+ public String replicaDeletion() {
+ return this.replicaDeletion;
+ }
+
+ /**
+ * Set a value indicating whether the VM has to be auto deleted.
+ *
+ * @param replicaDeletion the replicaDeletion value to set
+ * @return the HyperVReplicaPolicyInput object itself.
+ */
+ public HyperVReplicaPolicyInput withReplicaDeletion(String replicaDeletion) {
+ this.replicaDeletion = replicaDeletion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaReplicationDetails.java
new file mode 100644
index 0000000000000..18665a54792ab
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVReplicaReplicationDetails.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HyperV replica 2012 replication details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVReplica2012")
+public class HyperVReplicaReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The Last replication time.
+ */
+ @JsonProperty(value = "lastReplicatedTime")
+ private DateTime lastReplicatedTime;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * Initial replication details.
+ */
+ @JsonProperty(value = "initialReplicationDetails")
+ private InitialReplicationDetails initialReplicationDetails;
+
+ /**
+ * VM disk details.
+ */
+ @JsonProperty(value = "vMDiskDetails")
+ private List vMDiskDetails;
+
+ /**
+ * Get the Last replication time.
+ *
+ * @return the lastReplicatedTime value
+ */
+ public DateTime lastReplicatedTime() {
+ return this.lastReplicatedTime;
+ }
+
+ /**
+ * Set the Last replication time.
+ *
+ * @param lastReplicatedTime the lastReplicatedTime value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withLastReplicatedTime(DateTime lastReplicatedTime) {
+ this.lastReplicatedTime = lastReplicatedTime;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get initial replication details.
+ *
+ * @return the initialReplicationDetails value
+ */
+ public InitialReplicationDetails initialReplicationDetails() {
+ return this.initialReplicationDetails;
+ }
+
+ /**
+ * Set initial replication details.
+ *
+ * @param initialReplicationDetails the initialReplicationDetails value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withInitialReplicationDetails(InitialReplicationDetails initialReplicationDetails) {
+ this.initialReplicationDetails = initialReplicationDetails;
+ return this;
+ }
+
+ /**
+ * Get vM disk details.
+ *
+ * @return the vMDiskDetails value
+ */
+ public List vMDiskDetails() {
+ return this.vMDiskDetails;
+ }
+
+ /**
+ * Set vM disk details.
+ *
+ * @param vMDiskDetails the vMDiskDetails value to set
+ * @return the HyperVReplicaReplicationDetails object itself.
+ */
+ public HyperVReplicaReplicationDetails withVMDiskDetails(List vMDiskDetails) {
+ this.vMDiskDetails = vMDiskDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVSiteDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVSiteDetails.java
new file mode 100644
index 0000000000000..043a5e59e95b8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVSiteDetails.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * HyperVSite fabric specific details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVSite")
+public class HyperVSiteDetails extends FabricSpecificDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVVirtualMachineDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVVirtualMachineDetails.java
new file mode 100644
index 0000000000000..02f3d76781675
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/HyperVVirtualMachineDetails.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Hyper V replica provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("HyperVVirtualMachine")
+public class HyperVVirtualMachineDetails extends ConfigurationSettings {
+ /**
+ * The source id of the object.
+ */
+ @JsonProperty(value = "sourceItemId")
+ private String sourceItemId;
+
+ /**
+ * The id of the object in fabric.
+ */
+ @JsonProperty(value = "generation")
+ private String generation;
+
+ /**
+ * The Last replication time.
+ */
+ @JsonProperty(value = "osDetails")
+ private OSDetails osDetails;
+
+ /**
+ * The Last successful failover time.
+ */
+ @JsonProperty(value = "diskDetails")
+ private List diskDetails;
+
+ /**
+ * Get the source id of the object.
+ *
+ * @return the sourceItemId value
+ */
+ public String sourceItemId() {
+ return this.sourceItemId;
+ }
+
+ /**
+ * Set the source id of the object.
+ *
+ * @param sourceItemId the sourceItemId value to set
+ * @return the HyperVVirtualMachineDetails object itself.
+ */
+ public HyperVVirtualMachineDetails withSourceItemId(String sourceItemId) {
+ this.sourceItemId = sourceItemId;
+ return this;
+ }
+
+ /**
+ * Get the id of the object in fabric.
+ *
+ * @return the generation value
+ */
+ public String generation() {
+ return this.generation;
+ }
+
+ /**
+ * Set the id of the object in fabric.
+ *
+ * @param generation the generation value to set
+ * @return the HyperVVirtualMachineDetails object itself.
+ */
+ public HyperVVirtualMachineDetails withGeneration(String generation) {
+ this.generation = generation;
+ return this;
+ }
+
+ /**
+ * Get the Last replication time.
+ *
+ * @return the osDetails value
+ */
+ public OSDetails osDetails() {
+ return this.osDetails;
+ }
+
+ /**
+ * Set the Last replication time.
+ *
+ * @param osDetails the osDetails value to set
+ * @return the HyperVVirtualMachineDetails object itself.
+ */
+ public HyperVVirtualMachineDetails withOsDetails(OSDetails osDetails) {
+ this.osDetails = osDetails;
+ return this;
+ }
+
+ /**
+ * Get the Last successful failover time.
+ *
+ * @return the diskDetails value
+ */
+ public List diskDetails() {
+ return this.diskDetails;
+ }
+
+ /**
+ * Set the Last successful failover time.
+ *
+ * @param diskDetails the diskDetails value to set
+ * @return the HyperVVirtualMachineDetails object itself.
+ */
+ public HyperVVirtualMachineDetails withDiskDetails(List diskDetails) {
+ this.diskDetails = diskDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityInformation.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityInformation.java
new file mode 100644
index 0000000000000..66d70c839e636
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityInformation.java
@@ -0,0 +1,210 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity details.
+ */
+public class IdentityInformation {
+ /**
+ * The identity provider type. Value is the ToString() of a
+ * IdentityProviderType value. Possible values include:
+ * 'RecoveryServicesActiveDirectory', 'CustomerActiveDirectory'.
+ */
+ @JsonProperty(value = "identityProviderType")
+ private IdentityProviderType identityProviderType;
+
+ /**
+ * The tenant Id for the service principal with which the on-premise
+ * management/data plane components would communicate with our Azure
+ * services.
+ */
+ @JsonProperty(value = "tenantId")
+ private String tenantId;
+
+ /**
+ * The application/client Id for the service principal with which the
+ * on-premise management/data plane components would communicate with our
+ * Azure services.
+ */
+ @JsonProperty(value = "applicationId")
+ private String applicationId;
+
+ /**
+ * The object Id of the service principal with which the on-premise
+ * management/data plane components would communicate with our Azure
+ * services.
+ */
+ @JsonProperty(value = "objectId")
+ private String objectId;
+
+ /**
+ * The intended Audience of the service principal with which the on-premise
+ * management/data plane components would communicate with our Azure
+ * services.
+ */
+ @JsonProperty(value = "audience")
+ private String audience;
+
+ /**
+ * The base authority for Azure Active Directory authentication.
+ */
+ @JsonProperty(value = "aadAuthority")
+ private String aadAuthority;
+
+ /**
+ * The certificate thumbprint. Applicable only if IdentityProviderType is
+ * RecoveryServicesActiveDirectory.
+ */
+ @JsonProperty(value = "certificateThumbprint")
+ private String certificateThumbprint;
+
+ /**
+ * Get the identity provider type. Value is the ToString() of a IdentityProviderType value. Possible values include: 'RecoveryServicesActiveDirectory', 'CustomerActiveDirectory'.
+ *
+ * @return the identityProviderType value
+ */
+ public IdentityProviderType identityProviderType() {
+ return this.identityProviderType;
+ }
+
+ /**
+ * Set the identity provider type. Value is the ToString() of a IdentityProviderType value. Possible values include: 'RecoveryServicesActiveDirectory', 'CustomerActiveDirectory'.
+ *
+ * @param identityProviderType the identityProviderType value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withIdentityProviderType(IdentityProviderType identityProviderType) {
+ this.identityProviderType = identityProviderType;
+ return this;
+ }
+
+ /**
+ * Get the tenant Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Set the tenant Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @param tenantId the tenantId value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
+
+ /**
+ * Get the application/client Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @return the applicationId value
+ */
+ public String applicationId() {
+ return this.applicationId;
+ }
+
+ /**
+ * Set the application/client Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @param applicationId the applicationId value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withApplicationId(String applicationId) {
+ this.applicationId = applicationId;
+ return this;
+ }
+
+ /**
+ * Get the object Id of the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @return the objectId value
+ */
+ public String objectId() {
+ return this.objectId;
+ }
+
+ /**
+ * Set the object Id of the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @param objectId the objectId value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withObjectId(String objectId) {
+ this.objectId = objectId;
+ return this;
+ }
+
+ /**
+ * Get the intended Audience of the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @return the audience value
+ */
+ public String audience() {
+ return this.audience;
+ }
+
+ /**
+ * Set the intended Audience of the service principal with which the on-premise management/data plane components would communicate with our Azure services.
+ *
+ * @param audience the audience value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withAudience(String audience) {
+ this.audience = audience;
+ return this;
+ }
+
+ /**
+ * Get the base authority for Azure Active Directory authentication.
+ *
+ * @return the aadAuthority value
+ */
+ public String aadAuthority() {
+ return this.aadAuthority;
+ }
+
+ /**
+ * Set the base authority for Azure Active Directory authentication.
+ *
+ * @param aadAuthority the aadAuthority value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withAadAuthority(String aadAuthority) {
+ this.aadAuthority = aadAuthority;
+ return this;
+ }
+
+ /**
+ * Get the certificate thumbprint. Applicable only if IdentityProviderType is RecoveryServicesActiveDirectory.
+ *
+ * @return the certificateThumbprint value
+ */
+ public String certificateThumbprint() {
+ return this.certificateThumbprint;
+ }
+
+ /**
+ * Set the certificate thumbprint. Applicable only if IdentityProviderType is RecoveryServicesActiveDirectory.
+ *
+ * @param certificateThumbprint the certificateThumbprint value to set
+ * @return the IdentityInformation object itself.
+ */
+ public IdentityInformation withCertificateThumbprint(String certificateThumbprint) {
+ this.certificateThumbprint = certificateThumbprint;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityProviderType.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityProviderType.java
new file mode 100644
index 0000000000000..aa591aa59337f
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/IdentityProviderType.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for IdentityProviderType.
+ */
+public enum IdentityProviderType {
+ /** Enum value RecoveryServicesActiveDirectory. */
+ RECOVERY_SERVICES_ACTIVE_DIRECTORY("RecoveryServicesActiveDirectory"),
+
+ /** Enum value CustomerActiveDirectory. */
+ CUSTOMER_ACTIVE_DIRECTORY("CustomerActiveDirectory");
+
+ /** The actual serialized value for a IdentityProviderType instance. */
+ private String value;
+
+ IdentityProviderType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a IdentityProviderType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed IdentityProviderType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static IdentityProviderType fromString(String value) {
+ IdentityProviderType[] items = IdentityProviderType.values();
+ for (IdentityProviderType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAgentDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAgentDetails.java
new file mode 100644
index 0000000000000..75eaa95c900f9
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAgentDetails.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The details of the InMage agent.
+ */
+public class InMageAgentDetails {
+ /**
+ * The agent version.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * A value indicating whether installed agent needs to be updated.
+ */
+ @JsonProperty(value = "agentUpdateStatus")
+ private String agentUpdateStatus;
+
+ /**
+ * A value indicating whether reboot is required after update is applied.
+ */
+ @JsonProperty(value = "postUpdateRebootStatus")
+ private String postUpdateRebootStatus;
+
+ /**
+ * Get the agent version.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the agent version.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the InMageAgentDetails object itself.
+ */
+ public InMageAgentDetails withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether installed agent needs to be updated.
+ *
+ * @return the agentUpdateStatus value
+ */
+ public String agentUpdateStatus() {
+ return this.agentUpdateStatus;
+ }
+
+ /**
+ * Set a value indicating whether installed agent needs to be updated.
+ *
+ * @param agentUpdateStatus the agentUpdateStatus value to set
+ * @return the InMageAgentDetails object itself.
+ */
+ public InMageAgentDetails withAgentUpdateStatus(String agentUpdateStatus) {
+ this.agentUpdateStatus = agentUpdateStatus;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether reboot is required after update is applied.
+ *
+ * @return the postUpdateRebootStatus value
+ */
+ public String postUpdateRebootStatus() {
+ return this.postUpdateRebootStatus;
+ }
+
+ /**
+ * Set a value indicating whether reboot is required after update is applied.
+ *
+ * @param postUpdateRebootStatus the postUpdateRebootStatus value to set
+ * @return the InMageAgentDetails object itself.
+ */
+ public InMageAgentDetails withPostUpdateRebootStatus(String postUpdateRebootStatus) {
+ this.postUpdateRebootStatus = postUpdateRebootStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ApplyRecoveryPointInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ApplyRecoveryPointInput.java
new file mode 100644
index 0000000000000..4753138e31460
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ApplyRecoveryPointInput.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * ApplyRecoveryPoint input specific to InMageAzureV2 provider.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2ApplyRecoveryPointInput extends ApplyRecoveryPointProviderSpecificInput {
+ /**
+ * The vault location where the recovery Vm resides.
+ */
+ @JsonProperty(value = "vaultLocation")
+ private String vaultLocation;
+
+ /**
+ * Get the vault location where the recovery Vm resides.
+ *
+ * @return the vaultLocation value
+ */
+ public String vaultLocation() {
+ return this.vaultLocation;
+ }
+
+ /**
+ * Set the vault location where the recovery Vm resides.
+ *
+ * @param vaultLocation the vaultLocation value to set
+ * @return the InMageAzureV2ApplyRecoveryPointInput object itself.
+ */
+ public InMageAzureV2ApplyRecoveryPointInput withVaultLocation(String vaultLocation) {
+ this.vaultLocation = vaultLocation;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EnableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EnableProtectionInput.java
new file mode 100644
index 0000000000000..afe212f8937a7
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EnableProtectionInput.java
@@ -0,0 +1,415 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * VMware Azure specific enable protection input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2EnableProtectionInput extends EnableProtectionProviderSpecificInput {
+ /**
+ * The Master target Id.
+ */
+ @JsonProperty(value = "masterTargetId")
+ private String masterTargetId;
+
+ /**
+ * The Process Server Id.
+ */
+ @JsonProperty(value = "processServerId")
+ private String processServerId;
+
+ /**
+ * The storage account name.
+ */
+ @JsonProperty(value = "storageAccountId", required = true)
+ private String storageAccountId;
+
+ /**
+ * The CS account Id.
+ */
+ @JsonProperty(value = "runAsAccountId")
+ private String runAsAccountId;
+
+ /**
+ * The multi vm group Id.
+ */
+ @JsonProperty(value = "multiVmGroupId")
+ private String multiVmGroupId;
+
+ /**
+ * The multi vm group name.
+ */
+ @JsonProperty(value = "multiVmGroupName")
+ private String multiVmGroupName;
+
+ /**
+ * The disks to include list.
+ */
+ @JsonProperty(value = "disksToInclude")
+ private List disksToInclude;
+
+ /**
+ * The selected target Azure network Id.
+ */
+ @JsonProperty(value = "targetAzureNetworkId")
+ private String targetAzureNetworkId;
+
+ /**
+ * The selected target Azure subnet Id.
+ */
+ @JsonProperty(value = "targetAzureSubnetId")
+ private String targetAzureSubnetId;
+
+ /**
+ * The selected option to enable RDP\SSH on target vm after failover.
+ * String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ */
+ @JsonProperty(value = "enableRDPOnTargetOption")
+ private String enableRDPOnTargetOption;
+
+ /**
+ * The target azure Vm Name.
+ */
+ @JsonProperty(value = "targetAzureVmName")
+ private String targetAzureVmName;
+
+ /**
+ * The storage account to be used for logging during replication.
+ */
+ @JsonProperty(value = "logStorageAccountId")
+ private String logStorageAccountId;
+
+ /**
+ * The Id of the target resource group (for classic deployment) in which
+ * the failover VM is to be created.
+ */
+ @JsonProperty(value = "targetAzureV1ResourceGroupId")
+ private String targetAzureV1ResourceGroupId;
+
+ /**
+ * The Id of the target resource group (for resource manager deployment) in
+ * which the failover VM is to be created.
+ */
+ @JsonProperty(value = "targetAzureV2ResourceGroupId")
+ private String targetAzureV2ResourceGroupId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * Get the Master target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the Master target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the Process Server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the Process Server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the storage account name.
+ *
+ * @return the storageAccountId value
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set the storage account name.
+ *
+ * @param storageAccountId the storageAccountId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the CS account Id.
+ *
+ * @return the runAsAccountId value
+ */
+ public String runAsAccountId() {
+ return this.runAsAccountId;
+ }
+
+ /**
+ * Set the CS account Id.
+ *
+ * @param runAsAccountId the runAsAccountId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withRunAsAccountId(String runAsAccountId) {
+ this.runAsAccountId = runAsAccountId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group Id.
+ *
+ * @return the multiVmGroupId value
+ */
+ public String multiVmGroupId() {
+ return this.multiVmGroupId;
+ }
+
+ /**
+ * Set the multi vm group Id.
+ *
+ * @param multiVmGroupId the multiVmGroupId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withMultiVmGroupId(String multiVmGroupId) {
+ this.multiVmGroupId = multiVmGroupId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group name.
+ *
+ * @return the multiVmGroupName value
+ */
+ public String multiVmGroupName() {
+ return this.multiVmGroupName;
+ }
+
+ /**
+ * Set the multi vm group name.
+ *
+ * @param multiVmGroupName the multiVmGroupName value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withMultiVmGroupName(String multiVmGroupName) {
+ this.multiVmGroupName = multiVmGroupName;
+ return this;
+ }
+
+ /**
+ * Get the disks to include list.
+ *
+ * @return the disksToInclude value
+ */
+ public List disksToInclude() {
+ return this.disksToInclude;
+ }
+
+ /**
+ * Set the disks to include list.
+ *
+ * @param disksToInclude the disksToInclude value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withDisksToInclude(List disksToInclude) {
+ this.disksToInclude = disksToInclude;
+ return this;
+ }
+
+ /**
+ * Get the selected target Azure network Id.
+ *
+ * @return the targetAzureNetworkId value
+ */
+ public String targetAzureNetworkId() {
+ return this.targetAzureNetworkId;
+ }
+
+ /**
+ * Set the selected target Azure network Id.
+ *
+ * @param targetAzureNetworkId the targetAzureNetworkId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withTargetAzureNetworkId(String targetAzureNetworkId) {
+ this.targetAzureNetworkId = targetAzureNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the selected target Azure subnet Id.
+ *
+ * @return the targetAzureSubnetId value
+ */
+ public String targetAzureSubnetId() {
+ return this.targetAzureSubnetId;
+ }
+
+ /**
+ * Set the selected target Azure subnet Id.
+ *
+ * @param targetAzureSubnetId the targetAzureSubnetId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withTargetAzureSubnetId(String targetAzureSubnetId) {
+ this.targetAzureSubnetId = targetAzureSubnetId;
+ return this;
+ }
+
+ /**
+ * Get the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @return the enableRDPOnTargetOption value
+ */
+ public String enableRDPOnTargetOption() {
+ return this.enableRDPOnTargetOption;
+ }
+
+ /**
+ * Set the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @param enableRDPOnTargetOption the enableRDPOnTargetOption value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withEnableRDPOnTargetOption(String enableRDPOnTargetOption) {
+ this.enableRDPOnTargetOption = enableRDPOnTargetOption;
+ return this;
+ }
+
+ /**
+ * Get the target azure Vm Name.
+ *
+ * @return the targetAzureVmName value
+ */
+ public String targetAzureVmName() {
+ return this.targetAzureVmName;
+ }
+
+ /**
+ * Set the target azure Vm Name.
+ *
+ * @param targetAzureVmName the targetAzureVmName value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withTargetAzureVmName(String targetAzureVmName) {
+ this.targetAzureVmName = targetAzureVmName;
+ return this;
+ }
+
+ /**
+ * Get the storage account to be used for logging during replication.
+ *
+ * @return the logStorageAccountId value
+ */
+ public String logStorageAccountId() {
+ return this.logStorageAccountId;
+ }
+
+ /**
+ * Set the storage account to be used for logging during replication.
+ *
+ * @param logStorageAccountId the logStorageAccountId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withLogStorageAccountId(String logStorageAccountId) {
+ this.logStorageAccountId = logStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the Id of the target resource group (for classic deployment) in which the failover VM is to be created.
+ *
+ * @return the targetAzureV1ResourceGroupId value
+ */
+ public String targetAzureV1ResourceGroupId() {
+ return this.targetAzureV1ResourceGroupId;
+ }
+
+ /**
+ * Set the Id of the target resource group (for classic deployment) in which the failover VM is to be created.
+ *
+ * @param targetAzureV1ResourceGroupId the targetAzureV1ResourceGroupId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withTargetAzureV1ResourceGroupId(String targetAzureV1ResourceGroupId) {
+ this.targetAzureV1ResourceGroupId = targetAzureV1ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
+ *
+ * @return the targetAzureV2ResourceGroupId value
+ */
+ public String targetAzureV2ResourceGroupId() {
+ return this.targetAzureV2ResourceGroupId;
+ }
+
+ /**
+ * Set the Id of the target resource group (for resource manager deployment) in which the failover VM is to be created.
+ *
+ * @param targetAzureV2ResourceGroupId the targetAzureV2ResourceGroupId value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withTargetAzureV2ResourceGroupId(String targetAzureV2ResourceGroupId) {
+ this.targetAzureV2ResourceGroupId = targetAzureV2ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the InMageAzureV2EnableProtectionInput object itself.
+ */
+ public InMageAzureV2EnableProtectionInput withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EventDetails.java
new file mode 100644
index 0000000000000..a79f8dbc28118
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2EventDetails.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a VMwareAzureV2 event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2EventDetails extends EventProviderSpecificDetails {
+ /**
+ * InMage Event type. Takes one of the values of
+ * {InMageDataContract.InMageMonitoringEventType}.
+ */
+ @JsonProperty(value = "eventType")
+ private String eventType;
+
+ /**
+ * InMage Event Category.
+ */
+ @JsonProperty(value = "category")
+ private String category;
+
+ /**
+ * InMage Event Component.
+ */
+ @JsonProperty(value = "component")
+ private String component;
+
+ /**
+ * Corrective Action string for the event.
+ */
+ @JsonProperty(value = "correctiveAction")
+ private String correctiveAction;
+
+ /**
+ * InMage Event Details.
+ */
+ @JsonProperty(value = "details")
+ private String details;
+
+ /**
+ * InMage Event Summary.
+ */
+ @JsonProperty(value = "summary")
+ private String summary;
+
+ /**
+ * VMware Site name.
+ */
+ @JsonProperty(value = "siteName")
+ private String siteName;
+
+ /**
+ * Get inMage Event type. Takes one of the values of {InMageDataContract.InMageMonitoringEventType}.
+ *
+ * @return the eventType value
+ */
+ public String eventType() {
+ return this.eventType;
+ }
+
+ /**
+ * Set inMage Event type. Takes one of the values of {InMageDataContract.InMageMonitoringEventType}.
+ *
+ * @param eventType the eventType value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withEventType(String eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get inMage Event Category.
+ *
+ * @return the category value
+ */
+ public String category() {
+ return this.category;
+ }
+
+ /**
+ * Set inMage Event Category.
+ *
+ * @param category the category value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withCategory(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * Get inMage Event Component.
+ *
+ * @return the component value
+ */
+ public String component() {
+ return this.component;
+ }
+
+ /**
+ * Set inMage Event Component.
+ *
+ * @param component the component value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withComponent(String component) {
+ this.component = component;
+ return this;
+ }
+
+ /**
+ * Get corrective Action string for the event.
+ *
+ * @return the correctiveAction value
+ */
+ public String correctiveAction() {
+ return this.correctiveAction;
+ }
+
+ /**
+ * Set corrective Action string for the event.
+ *
+ * @param correctiveAction the correctiveAction value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withCorrectiveAction(String correctiveAction) {
+ this.correctiveAction = correctiveAction;
+ return this;
+ }
+
+ /**
+ * Get inMage Event Details.
+ *
+ * @return the details value
+ */
+ public String details() {
+ return this.details;
+ }
+
+ /**
+ * Set inMage Event Details.
+ *
+ * @param details the details value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withDetails(String details) {
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * Get inMage Event Summary.
+ *
+ * @return the summary value
+ */
+ public String summary() {
+ return this.summary;
+ }
+
+ /**
+ * Set inMage Event Summary.
+ *
+ * @param summary the summary value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withSummary(String summary) {
+ this.summary = summary;
+ return this;
+ }
+
+ /**
+ * Get vMware Site name.
+ *
+ * @return the siteName value
+ */
+ public String siteName() {
+ return this.siteName;
+ }
+
+ /**
+ * Set vMware Site name.
+ *
+ * @param siteName the siteName value to set
+ * @return the InMageAzureV2EventDetails object itself.
+ */
+ public InMageAzureV2EventDetails withSiteName(String siteName) {
+ this.siteName = siteName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2FailoverProviderInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2FailoverProviderInput.java
new file mode 100644
index 0000000000000..1c95aa2ba292d
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2FailoverProviderInput.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMageAzureV2 provider specific input for failover.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2FailoverProviderInput extends ProviderSpecificFailoverInput {
+ /**
+ * Location of the vault.
+ */
+ @JsonProperty(value = "vaultLocation")
+ private String vaultLocation;
+
+ /**
+ * The recovery point id to be passed to failover to a particular recovery
+ * point. In case of latest recovery point, null should be passed.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Get location of the vault.
+ *
+ * @return the vaultLocation value
+ */
+ public String vaultLocation() {
+ return this.vaultLocation;
+ }
+
+ /**
+ * Set location of the vault.
+ *
+ * @param vaultLocation the vaultLocation value to set
+ * @return the InMageAzureV2FailoverProviderInput object itself.
+ */
+ public InMageAzureV2FailoverProviderInput withVaultLocation(String vaultLocation) {
+ this.vaultLocation = vaultLocation;
+ return this;
+ }
+
+ /**
+ * Get the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the InMageAzureV2FailoverProviderInput object itself.
+ */
+ public InMageAzureV2FailoverProviderInput withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyDetails.java
new file mode 100644
index 0000000000000..451eae4772e27
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyDetails.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage Azure v2 specific protection profile details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2PolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * The crash consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "crashConsistentFrequencyInMinutes")
+ private Integer crashConsistentFrequencyInMinutes;
+
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The app consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * Get the crash consistent snapshot frequency in minutes.
+ *
+ * @return the crashConsistentFrequencyInMinutes value
+ */
+ public Integer crashConsistentFrequencyInMinutes() {
+ return this.crashConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the crash consistent snapshot frequency in minutes.
+ *
+ * @param crashConsistentFrequencyInMinutes the crashConsistentFrequencyInMinutes value to set
+ * @return the InMageAzureV2PolicyDetails object itself.
+ */
+ public InMageAzureV2PolicyDetails withCrashConsistentFrequencyInMinutes(Integer crashConsistentFrequencyInMinutes) {
+ this.crashConsistentFrequencyInMinutes = crashConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the InMageAzureV2PolicyDetails object itself.
+ */
+ public InMageAzureV2PolicyDetails withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the InMageAzureV2PolicyDetails object itself.
+ */
+ public InMageAzureV2PolicyDetails withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency in minutes.
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency in minutes.
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the InMageAzureV2PolicyDetails object itself.
+ */
+ public InMageAzureV2PolicyDetails withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMageAzureV2PolicyDetails object itself.
+ */
+ public InMageAzureV2PolicyDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyInput.java
new file mode 100644
index 0000000000000..2733bbc6322e6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2PolicyInput.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * VMWare Azure specific protection profile Input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2PolicyInput extends PolicyProviderSpecificInput {
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The crash consistent snapshot frequency (in minutes).
+ */
+ @JsonProperty(value = "crashConsistentFrequencyInMinutes")
+ private Integer crashConsistentFrequencyInMinutes;
+
+ /**
+ * The app consistent snapshot frequency (in minutes).
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled. Value should
+ * be 'Enabled' or 'Disabled'. Possible values include: 'Enable',
+ * 'Disable'.
+ */
+ @JsonProperty(value = "multiVmSyncStatus", required = true)
+ private SetMultiVmSyncStatus multiVmSyncStatus;
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the InMageAzureV2PolicyInput object itself.
+ */
+ public InMageAzureV2PolicyInput withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the InMageAzureV2PolicyInput object itself.
+ */
+ public InMageAzureV2PolicyInput withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the crash consistent snapshot frequency (in minutes).
+ *
+ * @return the crashConsistentFrequencyInMinutes value
+ */
+ public Integer crashConsistentFrequencyInMinutes() {
+ return this.crashConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the crash consistent snapshot frequency (in minutes).
+ *
+ * @param crashConsistentFrequencyInMinutes the crashConsistentFrequencyInMinutes value to set
+ * @return the InMageAzureV2PolicyInput object itself.
+ */
+ public InMageAzureV2PolicyInput withCrashConsistentFrequencyInMinutes(Integer crashConsistentFrequencyInMinutes) {
+ this.crashConsistentFrequencyInMinutes = crashConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency (in minutes).
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency (in minutes).
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the InMageAzureV2PolicyInput object itself.
+ */
+ public InMageAzureV2PolicyInput withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public SetMultiVmSyncStatus multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMageAzureV2PolicyInput object itself.
+ */
+ public InMageAzureV2PolicyInput withMultiVmSyncStatus(SetMultiVmSyncStatus multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ProtectedDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ProtectedDiskDetails.java
new file mode 100644
index 0000000000000..f8d77bf15c0c8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ProtectedDiskDetails.java
@@ -0,0 +1,408 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * InMageAzureV2 protected disk details.
+ */
+public class InMageAzureV2ProtectedDiskDetails {
+ /**
+ * The disk id.
+ */
+ @JsonProperty(value = "diskId")
+ private String diskId;
+
+ /**
+ * The disk name.
+ */
+ @JsonProperty(value = "diskName")
+ private String diskName;
+
+ /**
+ * The protection stage.
+ */
+ @JsonProperty(value = "protectionStage")
+ private String protectionStage;
+
+ /**
+ * The health error code for the disk.
+ */
+ @JsonProperty(value = "healthErrorCode")
+ private String healthErrorCode;
+
+ /**
+ * The RPO in seconds.
+ */
+ @JsonProperty(value = "rpoInSeconds")
+ private Long rpoInSeconds;
+
+ /**
+ * A value indicating whether resync is required for this disk.
+ */
+ @JsonProperty(value = "resyncRequired")
+ private String resyncRequired;
+
+ /**
+ * The resync progress percentage.
+ */
+ @JsonProperty(value = "resyncProgressPercentage")
+ private Integer resyncProgressPercentage;
+
+ /**
+ * The resync duration in seconds.
+ */
+ @JsonProperty(value = "resyncDurationInSeconds")
+ private Long resyncDurationInSeconds;
+
+ /**
+ * The disk capacity in bytes.
+ */
+ @JsonProperty(value = "diskCapacityInBytes")
+ private Long diskCapacityInBytes;
+
+ /**
+ * The disk file system capacity in bytes.
+ */
+ @JsonProperty(value = "fileSystemCapacityInBytes")
+ private Long fileSystemCapacityInBytes;
+
+ /**
+ * The source data transit in MB.
+ */
+ @JsonProperty(value = "sourceDataInMegaBytes")
+ private Double sourceDataInMegaBytes;
+
+ /**
+ * The PS data transit in MB.
+ */
+ @JsonProperty(value = "psDataInMegaBytes")
+ private Double psDataInMegaBytes;
+
+ /**
+ * The target data transit in MB.
+ */
+ @JsonProperty(value = "targetDataInMegaBytes")
+ private Double targetDataInMegaBytes;
+
+ /**
+ * A value indicating whether disk is resized.
+ */
+ @JsonProperty(value = "diskResized")
+ private String diskResized;
+
+ /**
+ * The last RPO calculated time.
+ */
+ @JsonProperty(value = "lastRpoCalculatedTime")
+ private DateTime lastRpoCalculatedTime;
+
+ /**
+ * Get the disk id.
+ *
+ * @return the diskId value
+ */
+ public String diskId() {
+ return this.diskId;
+ }
+
+ /**
+ * Set the disk id.
+ *
+ * @param diskId the diskId value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withDiskId(String diskId) {
+ this.diskId = diskId;
+ return this;
+ }
+
+ /**
+ * Get the disk name.
+ *
+ * @return the diskName value
+ */
+ public String diskName() {
+ return this.diskName;
+ }
+
+ /**
+ * Set the disk name.
+ *
+ * @param diskName the diskName value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withDiskName(String diskName) {
+ this.diskName = diskName;
+ return this;
+ }
+
+ /**
+ * Get the protection stage.
+ *
+ * @return the protectionStage value
+ */
+ public String protectionStage() {
+ return this.protectionStage;
+ }
+
+ /**
+ * Set the protection stage.
+ *
+ * @param protectionStage the protectionStage value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withProtectionStage(String protectionStage) {
+ this.protectionStage = protectionStage;
+ return this;
+ }
+
+ /**
+ * Get the health error code for the disk.
+ *
+ * @return the healthErrorCode value
+ */
+ public String healthErrorCode() {
+ return this.healthErrorCode;
+ }
+
+ /**
+ * Set the health error code for the disk.
+ *
+ * @param healthErrorCode the healthErrorCode value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withHealthErrorCode(String healthErrorCode) {
+ this.healthErrorCode = healthErrorCode;
+ return this;
+ }
+
+ /**
+ * Get the RPO in seconds.
+ *
+ * @return the rpoInSeconds value
+ */
+ public Long rpoInSeconds() {
+ return this.rpoInSeconds;
+ }
+
+ /**
+ * Set the RPO in seconds.
+ *
+ * @param rpoInSeconds the rpoInSeconds value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withRpoInSeconds(Long rpoInSeconds) {
+ this.rpoInSeconds = rpoInSeconds;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether resync is required for this disk.
+ *
+ * @return the resyncRequired value
+ */
+ public String resyncRequired() {
+ return this.resyncRequired;
+ }
+
+ /**
+ * Set a value indicating whether resync is required for this disk.
+ *
+ * @param resyncRequired the resyncRequired value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withResyncRequired(String resyncRequired) {
+ this.resyncRequired = resyncRequired;
+ return this;
+ }
+
+ /**
+ * Get the resync progress percentage.
+ *
+ * @return the resyncProgressPercentage value
+ */
+ public Integer resyncProgressPercentage() {
+ return this.resyncProgressPercentage;
+ }
+
+ /**
+ * Set the resync progress percentage.
+ *
+ * @param resyncProgressPercentage the resyncProgressPercentage value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withResyncProgressPercentage(Integer resyncProgressPercentage) {
+ this.resyncProgressPercentage = resyncProgressPercentage;
+ return this;
+ }
+
+ /**
+ * Get the resync duration in seconds.
+ *
+ * @return the resyncDurationInSeconds value
+ */
+ public Long resyncDurationInSeconds() {
+ return this.resyncDurationInSeconds;
+ }
+
+ /**
+ * Set the resync duration in seconds.
+ *
+ * @param resyncDurationInSeconds the resyncDurationInSeconds value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withResyncDurationInSeconds(Long resyncDurationInSeconds) {
+ this.resyncDurationInSeconds = resyncDurationInSeconds;
+ return this;
+ }
+
+ /**
+ * Get the disk capacity in bytes.
+ *
+ * @return the diskCapacityInBytes value
+ */
+ public Long diskCapacityInBytes() {
+ return this.diskCapacityInBytes;
+ }
+
+ /**
+ * Set the disk capacity in bytes.
+ *
+ * @param diskCapacityInBytes the diskCapacityInBytes value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withDiskCapacityInBytes(Long diskCapacityInBytes) {
+ this.diskCapacityInBytes = diskCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the disk file system capacity in bytes.
+ *
+ * @return the fileSystemCapacityInBytes value
+ */
+ public Long fileSystemCapacityInBytes() {
+ return this.fileSystemCapacityInBytes;
+ }
+
+ /**
+ * Set the disk file system capacity in bytes.
+ *
+ * @param fileSystemCapacityInBytes the fileSystemCapacityInBytes value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withFileSystemCapacityInBytes(Long fileSystemCapacityInBytes) {
+ this.fileSystemCapacityInBytes = fileSystemCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the source data transit in MB.
+ *
+ * @return the sourceDataInMegaBytes value
+ */
+ public Double sourceDataInMegaBytes() {
+ return this.sourceDataInMegaBytes;
+ }
+
+ /**
+ * Set the source data transit in MB.
+ *
+ * @param sourceDataInMegaBytes the sourceDataInMegaBytes value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withSourceDataInMegaBytes(Double sourceDataInMegaBytes) {
+ this.sourceDataInMegaBytes = sourceDataInMegaBytes;
+ return this;
+ }
+
+ /**
+ * Get the PS data transit in MB.
+ *
+ * @return the psDataInMegaBytes value
+ */
+ public Double psDataInMegaBytes() {
+ return this.psDataInMegaBytes;
+ }
+
+ /**
+ * Set the PS data transit in MB.
+ *
+ * @param psDataInMegaBytes the psDataInMegaBytes value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withPsDataInMegaBytes(Double psDataInMegaBytes) {
+ this.psDataInMegaBytes = psDataInMegaBytes;
+ return this;
+ }
+
+ /**
+ * Get the target data transit in MB.
+ *
+ * @return the targetDataInMegaBytes value
+ */
+ public Double targetDataInMegaBytes() {
+ return this.targetDataInMegaBytes;
+ }
+
+ /**
+ * Set the target data transit in MB.
+ *
+ * @param targetDataInMegaBytes the targetDataInMegaBytes value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withTargetDataInMegaBytes(Double targetDataInMegaBytes) {
+ this.targetDataInMegaBytes = targetDataInMegaBytes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether disk is resized.
+ *
+ * @return the diskResized value
+ */
+ public String diskResized() {
+ return this.diskResized;
+ }
+
+ /**
+ * Set a value indicating whether disk is resized.
+ *
+ * @param diskResized the diskResized value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withDiskResized(String diskResized) {
+ this.diskResized = diskResized;
+ return this;
+ }
+
+ /**
+ * Get the last RPO calculated time.
+ *
+ * @return the lastRpoCalculatedTime value
+ */
+ public DateTime lastRpoCalculatedTime() {
+ return this.lastRpoCalculatedTime;
+ }
+
+ /**
+ * Set the last RPO calculated time.
+ *
+ * @param lastRpoCalculatedTime the lastRpoCalculatedTime value to set
+ * @return the InMageAzureV2ProtectedDiskDetails object itself.
+ */
+ public InMageAzureV2ProtectedDiskDetails withLastRpoCalculatedTime(DateTime lastRpoCalculatedTime) {
+ this.lastRpoCalculatedTime = lastRpoCalculatedTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2RecoveryPointDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2RecoveryPointDetails.java
new file mode 100644
index 0000000000000..3fbf3e9368ba1
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2RecoveryPointDetails.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * InMage Azure V2 provider specific recovery point details.
+ */
+public class InMageAzureV2RecoveryPointDetails extends ProviderSpecificRecoveryPointDetails {
+ /**
+ * Gets the instance type.
+ */
+ @JsonProperty(value = "instanceType", access = JsonProperty.Access.WRITE_ONLY)
+ private String instanceType;
+
+ /**
+ * A value indicating whether the recovery point is multi VM consistent.
+ */
+ @JsonProperty(value = "isMultiVmSyncPoint")
+ private String isMultiVmSyncPoint;
+
+ /**
+ * Get gets the instance type.
+ *
+ * @return the instanceType value
+ */
+ public String instanceType() {
+ return this.instanceType;
+ }
+
+ /**
+ * Get a value indicating whether the recovery point is multi VM consistent.
+ *
+ * @return the isMultiVmSyncPoint value
+ */
+ public String isMultiVmSyncPoint() {
+ return this.isMultiVmSyncPoint;
+ }
+
+ /**
+ * Set a value indicating whether the recovery point is multi VM consistent.
+ *
+ * @param isMultiVmSyncPoint the isMultiVmSyncPoint value to set
+ * @return the InMageAzureV2RecoveryPointDetails object itself.
+ */
+ public InMageAzureV2RecoveryPointDetails withIsMultiVmSyncPoint(String isMultiVmSyncPoint) {
+ this.isMultiVmSyncPoint = isMultiVmSyncPoint;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReplicationDetails.java
new file mode 100644
index 0000000000000..0a803a4aaa5e8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReplicationDetails.java
@@ -0,0 +1,1254 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMageAzureV2 provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2ReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The infrastructure VM Id.
+ */
+ @JsonProperty(value = "infrastructureVmId")
+ private String infrastructureVmId;
+
+ /**
+ * The vCenter infrastructure Id.
+ */
+ @JsonProperty(value = "vCenterInfrastructureId")
+ private String vCenterInfrastructureId;
+
+ /**
+ * The protection stage.
+ */
+ @JsonProperty(value = "protectionStage")
+ private String protectionStage;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * The resync progress percentage.
+ */
+ @JsonProperty(value = "resyncProgressPercentage")
+ private Integer resyncProgressPercentage;
+
+ /**
+ * The RPO in seconds.
+ */
+ @JsonProperty(value = "rpoInSeconds")
+ private Long rpoInSeconds;
+
+ /**
+ * The compressed data change rate in MB.
+ */
+ @JsonProperty(value = "compressedDataRateInMB")
+ private Double compressedDataRateInMB;
+
+ /**
+ * The uncompressed data change rate in MB.
+ */
+ @JsonProperty(value = "uncompressedDataRateInMB")
+ private Double uncompressedDataRateInMB;
+
+ /**
+ * The source IP address.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The agent version.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * A value indicating whether installed agent needs to be updated.
+ */
+ @JsonProperty(value = "isAgentUpdateRequired")
+ private String isAgentUpdateRequired;
+
+ /**
+ * A value indicating whether the source server requires a restart after
+ * update.
+ */
+ @JsonProperty(value = "isRebootAfterUpdateRequired")
+ private String isRebootAfterUpdateRequired;
+
+ /**
+ * The last heartbeat received from the source server.
+ */
+ @JsonProperty(value = "lastHeartbeat")
+ private DateTime lastHeartbeat;
+
+ /**
+ * The process server Id.
+ */
+ @JsonProperty(value = "processServerId")
+ private String processServerId;
+
+ /**
+ * The multi vm group Id.
+ */
+ @JsonProperty(value = "multiVmGroupId")
+ private String multiVmGroupId;
+
+ /**
+ * The multi vm group name.
+ */
+ @JsonProperty(value = "multiVmGroupName")
+ private String multiVmGroupName;
+
+ /**
+ * A value indicating whether multi vm sync is enabled or disabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * The list of protected disks.
+ */
+ @JsonProperty(value = "protectedDisks")
+ private List protectedDisks;
+
+ /**
+ * A value indicating whether any disk is resized for this VM.
+ */
+ @JsonProperty(value = "diskResized")
+ private String diskResized;
+
+ /**
+ * The master target Id.
+ */
+ @JsonProperty(value = "masterTargetId")
+ private String masterTargetId;
+
+ /**
+ * The CPU count of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmCPUCount")
+ private Integer sourceVmCPUCount;
+
+ /**
+ * The RAM size of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmRAMSizeInMB")
+ private Integer sourceVmRAMSizeInMB;
+
+ /**
+ * The type of the OS on the VM.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The OS disk VHD name.
+ */
+ @JsonProperty(value = "vhdName")
+ private String vhdName;
+
+ /**
+ * The id of the disk containing the OS.
+ */
+ @JsonProperty(value = "osDiskId")
+ private String osDiskId;
+
+ /**
+ * Azure VM Disk details.
+ */
+ @JsonProperty(value = "azureVMDiskDetails")
+ private List azureVMDiskDetails;
+
+ /**
+ * Recovery Azure given name.
+ */
+ @JsonProperty(value = "recoveryAzureVMName")
+ private String recoveryAzureVMName;
+
+ /**
+ * The Recovery Azure VM size.
+ */
+ @JsonProperty(value = "recoveryAzureVMSize")
+ private String recoveryAzureVMSize;
+
+ /**
+ * The recovery Azure storage account.
+ */
+ @JsonProperty(value = "recoveryAzureStorageAccount")
+ private String recoveryAzureStorageAccount;
+
+ /**
+ * The ARM id of the log storage account used for replication. This will be
+ * set to null if no log storage account was provided during enable
+ * protection.
+ */
+ @JsonProperty(value = "recoveryAzureLogStorageAccountId")
+ private String recoveryAzureLogStorageAccountId;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * The selected recovery azure network Id.
+ */
+ @JsonProperty(value = "selectedRecoveryAzureNetworkId")
+ private String selectedRecoveryAzureNetworkId;
+
+ /**
+ * A value indicating the discovery type of the machine. Value can be
+ * vCenter or physical.
+ */
+ @JsonProperty(value = "discoveryType")
+ private String discoveryType;
+
+ /**
+ * The selected option to enable RDP\SSH on target vm after failover.
+ * String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ */
+ @JsonProperty(value = "enableRDPOnTargetOption")
+ private String enableRDPOnTargetOption;
+
+ /**
+ * The data stores of the on-premise machine. Value can be list of strings
+ * that contain data store names.
+ */
+ @JsonProperty(value = "datastores")
+ private List datastores;
+
+ /**
+ * The ARM Id of the target Azure VM. This value will be null until the VM
+ * is failed over. Only after failure it will be populated with the ARM Id
+ * of the Azure VM.
+ */
+ @JsonProperty(value = "targetVmId")
+ private String targetVmId;
+
+ /**
+ * The target resource group Id.
+ */
+ @JsonProperty(value = "recoveryAzureResourceGroupId")
+ private String recoveryAzureResourceGroupId;
+
+ /**
+ * The recovery availability set Id.
+ */
+ @JsonProperty(value = "recoveryAvailabilitySetId")
+ private String recoveryAvailabilitySetId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * License Type of the VM to be used.
+ */
+ @JsonProperty(value = "licenseType")
+ private String licenseType;
+
+ /**
+ * The validation errors of the on-premise machine Value can be list of
+ * validation errors.
+ */
+ @JsonProperty(value = "validationErrors")
+ private List validationErrors;
+
+ /**
+ * The last RPO calculated time.
+ */
+ @JsonProperty(value = "lastRpoCalculatedTime")
+ private DateTime lastRpoCalculatedTime;
+
+ /**
+ * The last update time received from on-prem components.
+ */
+ @JsonProperty(value = "lastUpdateReceivedTime")
+ private DateTime lastUpdateReceivedTime;
+
+ /**
+ * The replica id of the protected item.
+ */
+ @JsonProperty(value = "replicaId")
+ private String replicaId;
+
+ /**
+ * The OS Version of the protected item.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /**
+ * Get the infrastructure VM Id.
+ *
+ * @return the infrastructureVmId value
+ */
+ public String infrastructureVmId() {
+ return this.infrastructureVmId;
+ }
+
+ /**
+ * Set the infrastructure VM Id.
+ *
+ * @param infrastructureVmId the infrastructureVmId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withInfrastructureVmId(String infrastructureVmId) {
+ this.infrastructureVmId = infrastructureVmId;
+ return this;
+ }
+
+ /**
+ * Get the vCenter infrastructure Id.
+ *
+ * @return the vCenterInfrastructureId value
+ */
+ public String vCenterInfrastructureId() {
+ return this.vCenterInfrastructureId;
+ }
+
+ /**
+ * Set the vCenter infrastructure Id.
+ *
+ * @param vCenterInfrastructureId the vCenterInfrastructureId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVCenterInfrastructureId(String vCenterInfrastructureId) {
+ this.vCenterInfrastructureId = vCenterInfrastructureId;
+ return this;
+ }
+
+ /**
+ * Get the protection stage.
+ *
+ * @return the protectionStage value
+ */
+ public String protectionStage() {
+ return this.protectionStage;
+ }
+
+ /**
+ * Set the protection stage.
+ *
+ * @param protectionStage the protectionStage value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withProtectionStage(String protectionStage) {
+ this.protectionStage = protectionStage;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get the resync progress percentage.
+ *
+ * @return the resyncProgressPercentage value
+ */
+ public Integer resyncProgressPercentage() {
+ return this.resyncProgressPercentage;
+ }
+
+ /**
+ * Set the resync progress percentage.
+ *
+ * @param resyncProgressPercentage the resyncProgressPercentage value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withResyncProgressPercentage(Integer resyncProgressPercentage) {
+ this.resyncProgressPercentage = resyncProgressPercentage;
+ return this;
+ }
+
+ /**
+ * Get the RPO in seconds.
+ *
+ * @return the rpoInSeconds value
+ */
+ public Long rpoInSeconds() {
+ return this.rpoInSeconds;
+ }
+
+ /**
+ * Set the RPO in seconds.
+ *
+ * @param rpoInSeconds the rpoInSeconds value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRpoInSeconds(Long rpoInSeconds) {
+ this.rpoInSeconds = rpoInSeconds;
+ return this;
+ }
+
+ /**
+ * Get the compressed data change rate in MB.
+ *
+ * @return the compressedDataRateInMB value
+ */
+ public Double compressedDataRateInMB() {
+ return this.compressedDataRateInMB;
+ }
+
+ /**
+ * Set the compressed data change rate in MB.
+ *
+ * @param compressedDataRateInMB the compressedDataRateInMB value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withCompressedDataRateInMB(Double compressedDataRateInMB) {
+ this.compressedDataRateInMB = compressedDataRateInMB;
+ return this;
+ }
+
+ /**
+ * Get the uncompressed data change rate in MB.
+ *
+ * @return the uncompressedDataRateInMB value
+ */
+ public Double uncompressedDataRateInMB() {
+ return this.uncompressedDataRateInMB;
+ }
+
+ /**
+ * Set the uncompressed data change rate in MB.
+ *
+ * @param uncompressedDataRateInMB the uncompressedDataRateInMB value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withUncompressedDataRateInMB(Double uncompressedDataRateInMB) {
+ this.uncompressedDataRateInMB = uncompressedDataRateInMB;
+ return this;
+ }
+
+ /**
+ * Get the source IP address.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the source IP address.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the agent version.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the agent version.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether installed agent needs to be updated.
+ *
+ * @return the isAgentUpdateRequired value
+ */
+ public String isAgentUpdateRequired() {
+ return this.isAgentUpdateRequired;
+ }
+
+ /**
+ * Set a value indicating whether installed agent needs to be updated.
+ *
+ * @param isAgentUpdateRequired the isAgentUpdateRequired value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withIsAgentUpdateRequired(String isAgentUpdateRequired) {
+ this.isAgentUpdateRequired = isAgentUpdateRequired;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the source server requires a restart after update.
+ *
+ * @return the isRebootAfterUpdateRequired value
+ */
+ public String isRebootAfterUpdateRequired() {
+ return this.isRebootAfterUpdateRequired;
+ }
+
+ /**
+ * Set a value indicating whether the source server requires a restart after update.
+ *
+ * @param isRebootAfterUpdateRequired the isRebootAfterUpdateRequired value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withIsRebootAfterUpdateRequired(String isRebootAfterUpdateRequired) {
+ this.isRebootAfterUpdateRequired = isRebootAfterUpdateRequired;
+ return this;
+ }
+
+ /**
+ * Get the last heartbeat received from the source server.
+ *
+ * @return the lastHeartbeat value
+ */
+ public DateTime lastHeartbeat() {
+ return this.lastHeartbeat;
+ }
+
+ /**
+ * Set the last heartbeat received from the source server.
+ *
+ * @param lastHeartbeat the lastHeartbeat value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withLastHeartbeat(DateTime lastHeartbeat) {
+ this.lastHeartbeat = lastHeartbeat;
+ return this;
+ }
+
+ /**
+ * Get the process server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the process server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group Id.
+ *
+ * @return the multiVmGroupId value
+ */
+ public String multiVmGroupId() {
+ return this.multiVmGroupId;
+ }
+
+ /**
+ * Set the multi vm group Id.
+ *
+ * @param multiVmGroupId the multiVmGroupId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withMultiVmGroupId(String multiVmGroupId) {
+ this.multiVmGroupId = multiVmGroupId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group name.
+ *
+ * @return the multiVmGroupName value
+ */
+ public String multiVmGroupName() {
+ return this.multiVmGroupName;
+ }
+
+ /**
+ * Set the multi vm group name.
+ *
+ * @param multiVmGroupName the multiVmGroupName value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withMultiVmGroupName(String multiVmGroupName) {
+ this.multiVmGroupName = multiVmGroupName;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi vm sync is enabled or disabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi vm sync is enabled or disabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+ /**
+ * Get the list of protected disks.
+ *
+ * @return the protectedDisks value
+ */
+ public List protectedDisks() {
+ return this.protectedDisks;
+ }
+
+ /**
+ * Set the list of protected disks.
+ *
+ * @param protectedDisks the protectedDisks value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withProtectedDisks(List protectedDisks) {
+ this.protectedDisks = protectedDisks;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether any disk is resized for this VM.
+ *
+ * @return the diskResized value
+ */
+ public String diskResized() {
+ return this.diskResized;
+ }
+
+ /**
+ * Set a value indicating whether any disk is resized for this VM.
+ *
+ * @param diskResized the diskResized value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withDiskResized(String diskResized) {
+ this.diskResized = diskResized;
+ return this;
+ }
+
+ /**
+ * Get the master target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the master target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the CPU count of the VM on the primary side.
+ *
+ * @return the sourceVmCPUCount value
+ */
+ public Integer sourceVmCPUCount() {
+ return this.sourceVmCPUCount;
+ }
+
+ /**
+ * Set the CPU count of the VM on the primary side.
+ *
+ * @param sourceVmCPUCount the sourceVmCPUCount value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withSourceVmCPUCount(Integer sourceVmCPUCount) {
+ this.sourceVmCPUCount = sourceVmCPUCount;
+ return this;
+ }
+
+ /**
+ * Get the RAM size of the VM on the primary side.
+ *
+ * @return the sourceVmRAMSizeInMB value
+ */
+ public Integer sourceVmRAMSizeInMB() {
+ return this.sourceVmRAMSizeInMB;
+ }
+
+ /**
+ * Set the RAM size of the VM on the primary side.
+ *
+ * @param sourceVmRAMSizeInMB the sourceVmRAMSizeInMB value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withSourceVmRAMSizeInMB(Integer sourceVmRAMSizeInMB) {
+ this.sourceVmRAMSizeInMB = sourceVmRAMSizeInMB;
+ return this;
+ }
+
+ /**
+ * Get the type of the OS on the VM.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the type of the OS on the VM.
+ *
+ * @param osType the osType value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the OS disk VHD name.
+ *
+ * @return the vhdName value
+ */
+ public String vhdName() {
+ return this.vhdName;
+ }
+
+ /**
+ * Set the OS disk VHD name.
+ *
+ * @param vhdName the vhdName value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVhdName(String vhdName) {
+ this.vhdName = vhdName;
+ return this;
+ }
+
+ /**
+ * Get the id of the disk containing the OS.
+ *
+ * @return the osDiskId value
+ */
+ public String osDiskId() {
+ return this.osDiskId;
+ }
+
+ /**
+ * Set the id of the disk containing the OS.
+ *
+ * @param osDiskId the osDiskId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withOsDiskId(String osDiskId) {
+ this.osDiskId = osDiskId;
+ return this;
+ }
+
+ /**
+ * Get azure VM Disk details.
+ *
+ * @return the azureVMDiskDetails value
+ */
+ public List azureVMDiskDetails() {
+ return this.azureVMDiskDetails;
+ }
+
+ /**
+ * Set azure VM Disk details.
+ *
+ * @param azureVMDiskDetails the azureVMDiskDetails value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withAzureVMDiskDetails(List azureVMDiskDetails) {
+ this.azureVMDiskDetails = azureVMDiskDetails;
+ return this;
+ }
+
+ /**
+ * Get recovery Azure given name.
+ *
+ * @return the recoveryAzureVMName value
+ */
+ public String recoveryAzureVMName() {
+ return this.recoveryAzureVMName;
+ }
+
+ /**
+ * Set recovery Azure given name.
+ *
+ * @param recoveryAzureVMName the recoveryAzureVMName value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAzureVMName(String recoveryAzureVMName) {
+ this.recoveryAzureVMName = recoveryAzureVMName;
+ return this;
+ }
+
+ /**
+ * Get the Recovery Azure VM size.
+ *
+ * @return the recoveryAzureVMSize value
+ */
+ public String recoveryAzureVMSize() {
+ return this.recoveryAzureVMSize;
+ }
+
+ /**
+ * Set the Recovery Azure VM size.
+ *
+ * @param recoveryAzureVMSize the recoveryAzureVMSize value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAzureVMSize(String recoveryAzureVMSize) {
+ this.recoveryAzureVMSize = recoveryAzureVMSize;
+ return this;
+ }
+
+ /**
+ * Get the recovery Azure storage account.
+ *
+ * @return the recoveryAzureStorageAccount value
+ */
+ public String recoveryAzureStorageAccount() {
+ return this.recoveryAzureStorageAccount;
+ }
+
+ /**
+ * Set the recovery Azure storage account.
+ *
+ * @param recoveryAzureStorageAccount the recoveryAzureStorageAccount value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAzureStorageAccount(String recoveryAzureStorageAccount) {
+ this.recoveryAzureStorageAccount = recoveryAzureStorageAccount;
+ return this;
+ }
+
+ /**
+ * Get the ARM id of the log storage account used for replication. This will be set to null if no log storage account was provided during enable protection.
+ *
+ * @return the recoveryAzureLogStorageAccountId value
+ */
+ public String recoveryAzureLogStorageAccountId() {
+ return this.recoveryAzureLogStorageAccountId;
+ }
+
+ /**
+ * Set the ARM id of the log storage account used for replication. This will be set to null if no log storage account was provided during enable protection.
+ *
+ * @param recoveryAzureLogStorageAccountId the recoveryAzureLogStorageAccountId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAzureLogStorageAccountId(String recoveryAzureLogStorageAccountId) {
+ this.recoveryAzureLogStorageAccountId = recoveryAzureLogStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get the selected recovery azure network Id.
+ *
+ * @return the selectedRecoveryAzureNetworkId value
+ */
+ public String selectedRecoveryAzureNetworkId() {
+ return this.selectedRecoveryAzureNetworkId;
+ }
+
+ /**
+ * Set the selected recovery azure network Id.
+ *
+ * @param selectedRecoveryAzureNetworkId the selectedRecoveryAzureNetworkId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withSelectedRecoveryAzureNetworkId(String selectedRecoveryAzureNetworkId) {
+ this.selectedRecoveryAzureNetworkId = selectedRecoveryAzureNetworkId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the discovery type of the machine. Value can be vCenter or physical.
+ *
+ * @return the discoveryType value
+ */
+ public String discoveryType() {
+ return this.discoveryType;
+ }
+
+ /**
+ * Set a value indicating the discovery type of the machine. Value can be vCenter or physical.
+ *
+ * @param discoveryType the discoveryType value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withDiscoveryType(String discoveryType) {
+ this.discoveryType = discoveryType;
+ return this;
+ }
+
+ /**
+ * Get the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @return the enableRDPOnTargetOption value
+ */
+ public String enableRDPOnTargetOption() {
+ return this.enableRDPOnTargetOption;
+ }
+
+ /**
+ * Set the selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum.
+ *
+ * @param enableRDPOnTargetOption the enableRDPOnTargetOption value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withEnableRDPOnTargetOption(String enableRDPOnTargetOption) {
+ this.enableRDPOnTargetOption = enableRDPOnTargetOption;
+ return this;
+ }
+
+ /**
+ * Get the data stores of the on-premise machine. Value can be list of strings that contain data store names.
+ *
+ * @return the datastores value
+ */
+ public List datastores() {
+ return this.datastores;
+ }
+
+ /**
+ * Set the data stores of the on-premise machine. Value can be list of strings that contain data store names.
+ *
+ * @param datastores the datastores value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withDatastores(List datastores) {
+ this.datastores = datastores;
+ return this;
+ }
+
+ /**
+ * Get the ARM Id of the target Azure VM. This value will be null until the VM is failed over. Only after failure it will be populated with the ARM Id of the Azure VM.
+ *
+ * @return the targetVmId value
+ */
+ public String targetVmId() {
+ return this.targetVmId;
+ }
+
+ /**
+ * Set the ARM Id of the target Azure VM. This value will be null until the VM is failed over. Only after failure it will be populated with the ARM Id of the Azure VM.
+ *
+ * @param targetVmId the targetVmId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withTargetVmId(String targetVmId) {
+ this.targetVmId = targetVmId;
+ return this;
+ }
+
+ /**
+ * Get the target resource group Id.
+ *
+ * @return the recoveryAzureResourceGroupId value
+ */
+ public String recoveryAzureResourceGroupId() {
+ return this.recoveryAzureResourceGroupId;
+ }
+
+ /**
+ * Set the target resource group Id.
+ *
+ * @param recoveryAzureResourceGroupId the recoveryAzureResourceGroupId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAzureResourceGroupId(String recoveryAzureResourceGroupId) {
+ this.recoveryAzureResourceGroupId = recoveryAzureResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery availability set Id.
+ *
+ * @return the recoveryAvailabilitySetId value
+ */
+ public String recoveryAvailabilitySetId() {
+ return this.recoveryAvailabilitySetId;
+ }
+
+ /**
+ * Set the recovery availability set Id.
+ *
+ * @param recoveryAvailabilitySetId the recoveryAvailabilitySetId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withRecoveryAvailabilitySetId(String recoveryAvailabilitySetId) {
+ this.recoveryAvailabilitySetId = recoveryAvailabilitySetId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+ /**
+ * Get license Type of the VM to be used.
+ *
+ * @return the licenseType value
+ */
+ public String licenseType() {
+ return this.licenseType;
+ }
+
+ /**
+ * Set license Type of the VM to be used.
+ *
+ * @param licenseType the licenseType value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withLicenseType(String licenseType) {
+ this.licenseType = licenseType;
+ return this;
+ }
+
+ /**
+ * Get the validation errors of the on-premise machine Value can be list of validation errors.
+ *
+ * @return the validationErrors value
+ */
+ public List validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set the validation errors of the on-premise machine Value can be list of validation errors.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withValidationErrors(List validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+ /**
+ * Get the last RPO calculated time.
+ *
+ * @return the lastRpoCalculatedTime value
+ */
+ public DateTime lastRpoCalculatedTime() {
+ return this.lastRpoCalculatedTime;
+ }
+
+ /**
+ * Set the last RPO calculated time.
+ *
+ * @param lastRpoCalculatedTime the lastRpoCalculatedTime value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withLastRpoCalculatedTime(DateTime lastRpoCalculatedTime) {
+ this.lastRpoCalculatedTime = lastRpoCalculatedTime;
+ return this;
+ }
+
+ /**
+ * Get the last update time received from on-prem components.
+ *
+ * @return the lastUpdateReceivedTime value
+ */
+ public DateTime lastUpdateReceivedTime() {
+ return this.lastUpdateReceivedTime;
+ }
+
+ /**
+ * Set the last update time received from on-prem components.
+ *
+ * @param lastUpdateReceivedTime the lastUpdateReceivedTime value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withLastUpdateReceivedTime(DateTime lastUpdateReceivedTime) {
+ this.lastUpdateReceivedTime = lastUpdateReceivedTime;
+ return this;
+ }
+
+ /**
+ * Get the replica id of the protected item.
+ *
+ * @return the replicaId value
+ */
+ public String replicaId() {
+ return this.replicaId;
+ }
+
+ /**
+ * Set the replica id of the protected item.
+ *
+ * @param replicaId the replicaId value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withReplicaId(String replicaId) {
+ this.replicaId = replicaId;
+ return this;
+ }
+
+ /**
+ * Get the OS Version of the protected item.
+ *
+ * @return the osVersion value
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set the OS Version of the protected item.
+ *
+ * @param osVersion the osVersion value to set
+ * @return the InMageAzureV2ReplicationDetails object itself.
+ */
+ public InMageAzureV2ReplicationDetails withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReprotectInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReprotectInput.java
new file mode 100644
index 0000000000000..7e6592292b10e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2ReprotectInput.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMageAzureV2 specific provider input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2ReprotectInput extends ReverseReplicationProviderSpecificInput {
+ /**
+ * The Master target Id.
+ */
+ @JsonProperty(value = "masterTargetId")
+ private String masterTargetId;
+
+ /**
+ * The Process Server Id.
+ */
+ @JsonProperty(value = "processServerId")
+ private String processServerId;
+
+ /**
+ * The storage account id.
+ */
+ @JsonProperty(value = "storageAccountId")
+ private String storageAccountId;
+
+ /**
+ * The CS account Id.
+ */
+ @JsonProperty(value = "runAsAccountId")
+ private String runAsAccountId;
+
+ /**
+ * The Policy Id.
+ */
+ @JsonProperty(value = "policyId")
+ private String policyId;
+
+ /**
+ * The storage account to be used for logging during replication.
+ */
+ @JsonProperty(value = "logStorageAccountId")
+ private String logStorageAccountId;
+
+ /**
+ * The disks to include list.
+ */
+ @JsonProperty(value = "disksToInclude")
+ private List disksToInclude;
+
+ /**
+ * Get the Master target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the Master target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the Process Server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the Process Server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the storage account id.
+ *
+ * @return the storageAccountId value
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set the storage account id.
+ *
+ * @param storageAccountId the storageAccountId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the CS account Id.
+ *
+ * @return the runAsAccountId value
+ */
+ public String runAsAccountId() {
+ return this.runAsAccountId;
+ }
+
+ /**
+ * Set the CS account Id.
+ *
+ * @param runAsAccountId the runAsAccountId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withRunAsAccountId(String runAsAccountId) {
+ this.runAsAccountId = runAsAccountId;
+ return this;
+ }
+
+ /**
+ * Get the Policy Id.
+ *
+ * @return the policyId value
+ */
+ public String policyId() {
+ return this.policyId;
+ }
+
+ /**
+ * Set the Policy Id.
+ *
+ * @param policyId the policyId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withPolicyId(String policyId) {
+ this.policyId = policyId;
+ return this;
+ }
+
+ /**
+ * Get the storage account to be used for logging during replication.
+ *
+ * @return the logStorageAccountId value
+ */
+ public String logStorageAccountId() {
+ return this.logStorageAccountId;
+ }
+
+ /**
+ * Set the storage account to be used for logging during replication.
+ *
+ * @param logStorageAccountId the logStorageAccountId value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withLogStorageAccountId(String logStorageAccountId) {
+ this.logStorageAccountId = logStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the disks to include list.
+ *
+ * @return the disksToInclude value
+ */
+ public List disksToInclude() {
+ return this.disksToInclude;
+ }
+
+ /**
+ * Set the disks to include list.
+ *
+ * @param disksToInclude the disksToInclude value to set
+ * @return the InMageAzureV2ReprotectInput object itself.
+ */
+ public InMageAzureV2ReprotectInput withDisksToInclude(List disksToInclude) {
+ this.disksToInclude = disksToInclude;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2UpdateReplicationProtectedItemInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2UpdateReplicationProtectedItemInput.java
new file mode 100644
index 0000000000000..14eca33fce4b1
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageAzureV2UpdateReplicationProtectedItemInput.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage Azure V2 input to update replication protected item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageAzureV2")
+public class InMageAzureV2UpdateReplicationProtectedItemInput extends UpdateReplicationProtectedItemProviderInput {
+ /**
+ * The recovery Azure resource group Id for classic deployment.
+ */
+ @JsonProperty(value = "recoveryAzureV1ResourceGroupId")
+ private String recoveryAzureV1ResourceGroupId;
+
+ /**
+ * The recovery Azure resource group Id for resource manager deployment.
+ */
+ @JsonProperty(value = "recoveryAzureV2ResourceGroupId")
+ private String recoveryAzureV2ResourceGroupId;
+
+ /**
+ * A value indicating whether managed disks should be used during failover.
+ */
+ @JsonProperty(value = "useManagedDisks")
+ private String useManagedDisks;
+
+ /**
+ * Get the recovery Azure resource group Id for classic deployment.
+ *
+ * @return the recoveryAzureV1ResourceGroupId value
+ */
+ public String recoveryAzureV1ResourceGroupId() {
+ return this.recoveryAzureV1ResourceGroupId;
+ }
+
+ /**
+ * Set the recovery Azure resource group Id for classic deployment.
+ *
+ * @param recoveryAzureV1ResourceGroupId the recoveryAzureV1ResourceGroupId value to set
+ * @return the InMageAzureV2UpdateReplicationProtectedItemInput object itself.
+ */
+ public InMageAzureV2UpdateReplicationProtectedItemInput withRecoveryAzureV1ResourceGroupId(String recoveryAzureV1ResourceGroupId) {
+ this.recoveryAzureV1ResourceGroupId = recoveryAzureV1ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the recovery Azure resource group Id for resource manager deployment.
+ *
+ * @return the recoveryAzureV2ResourceGroupId value
+ */
+ public String recoveryAzureV2ResourceGroupId() {
+ return this.recoveryAzureV2ResourceGroupId;
+ }
+
+ /**
+ * Set the recovery Azure resource group Id for resource manager deployment.
+ *
+ * @param recoveryAzureV2ResourceGroupId the recoveryAzureV2ResourceGroupId value to set
+ * @return the InMageAzureV2UpdateReplicationProtectedItemInput object itself.
+ */
+ public InMageAzureV2UpdateReplicationProtectedItemInput withRecoveryAzureV2ResourceGroupId(String recoveryAzureV2ResourceGroupId) {
+ this.recoveryAzureV2ResourceGroupId = recoveryAzureV2ResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether managed disks should be used during failover.
+ *
+ * @return the useManagedDisks value
+ */
+ public String useManagedDisks() {
+ return this.useManagedDisks;
+ }
+
+ /**
+ * Set a value indicating whether managed disks should be used during failover.
+ *
+ * @param useManagedDisks the useManagedDisks value to set
+ * @return the InMageAzureV2UpdateReplicationProtectedItemInput object itself.
+ */
+ public InMageAzureV2UpdateReplicationProtectedItemInput withUseManagedDisks(String useManagedDisks) {
+ this.useManagedDisks = useManagedDisks;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageBasePolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageBasePolicyDetails.java
new file mode 100644
index 0000000000000..09ef2d95afc41
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageBasePolicyDetails.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Base class for the policies of providers using InMage replication.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMageBasePolicyDetails")
+public class InMageBasePolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The app consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the InMageBasePolicyDetails object itself.
+ */
+ public InMageBasePolicyDetails withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the InMageBasePolicyDetails object itself.
+ */
+ public InMageBasePolicyDetails withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency in minutes.
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency in minutes.
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the InMageBasePolicyDetails object itself.
+ */
+ public InMageBasePolicyDetails withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMageBasePolicyDetails object itself.
+ */
+ public InMageBasePolicyDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDisableProtectionProviderSpecificInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDisableProtectionProviderSpecificInput.java
new file mode 100644
index 0000000000000..1640aa5b64ed0
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDisableProtectionProviderSpecificInput.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage disable protection provider specific input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMageDisableProtectionProviderSpecificInput extends DisableProtectionProviderSpecificInput {
+ /**
+ * A value indicating whether the replica VM should be destroyed or
+ * retained. Values from Delete and Retain.
+ */
+ @JsonProperty(value = "replicaVmDeletionStatus")
+ private String replicaVmDeletionStatus;
+
+ /**
+ * Get a value indicating whether the replica VM should be destroyed or retained. Values from Delete and Retain.
+ *
+ * @return the replicaVmDeletionStatus value
+ */
+ public String replicaVmDeletionStatus() {
+ return this.replicaVmDeletionStatus;
+ }
+
+ /**
+ * Set a value indicating whether the replica VM should be destroyed or retained. Values from Delete and Retain.
+ *
+ * @param replicaVmDeletionStatus the replicaVmDeletionStatus value to set
+ * @return the InMageDisableProtectionProviderSpecificInput object itself.
+ */
+ public InMageDisableProtectionProviderSpecificInput withReplicaVmDeletionStatus(String replicaVmDeletionStatus) {
+ this.replicaVmDeletionStatus = replicaVmDeletionStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskDetails.java
new file mode 100644
index 0000000000000..f6d6c7c3e401e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskDetails.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * VMware/Physical specific Disk Details.
+ */
+public class InMageDiskDetails {
+ /**
+ * The disk Id.
+ */
+ @JsonProperty(value = "diskId")
+ private String diskId;
+
+ /**
+ * The disk name.
+ */
+ @JsonProperty(value = "diskName")
+ private String diskName;
+
+ /**
+ * The disk size in MB.
+ */
+ @JsonProperty(value = "diskSizeInMB")
+ private String diskSizeInMB;
+
+ /**
+ * Whether disk is system disk or data disk.
+ */
+ @JsonProperty(value = "diskType")
+ private String diskType;
+
+ /**
+ * Whether disk is dynamic disk or basic disk.
+ */
+ @JsonProperty(value = "diskConfiguration")
+ private String diskConfiguration;
+
+ /**
+ * Volumes of the disk.
+ */
+ @JsonProperty(value = "volumeList")
+ private List volumeList;
+
+ /**
+ * Get the disk Id.
+ *
+ * @return the diskId value
+ */
+ public String diskId() {
+ return this.diskId;
+ }
+
+ /**
+ * Set the disk Id.
+ *
+ * @param diskId the diskId value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withDiskId(String diskId) {
+ this.diskId = diskId;
+ return this;
+ }
+
+ /**
+ * Get the disk name.
+ *
+ * @return the diskName value
+ */
+ public String diskName() {
+ return this.diskName;
+ }
+
+ /**
+ * Set the disk name.
+ *
+ * @param diskName the diskName value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withDiskName(String diskName) {
+ this.diskName = diskName;
+ return this;
+ }
+
+ /**
+ * Get the disk size in MB.
+ *
+ * @return the diskSizeInMB value
+ */
+ public String diskSizeInMB() {
+ return this.diskSizeInMB;
+ }
+
+ /**
+ * Set the disk size in MB.
+ *
+ * @param diskSizeInMB the diskSizeInMB value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withDiskSizeInMB(String diskSizeInMB) {
+ this.diskSizeInMB = diskSizeInMB;
+ return this;
+ }
+
+ /**
+ * Get whether disk is system disk or data disk.
+ *
+ * @return the diskType value
+ */
+ public String diskType() {
+ return this.diskType;
+ }
+
+ /**
+ * Set whether disk is system disk or data disk.
+ *
+ * @param diskType the diskType value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withDiskType(String diskType) {
+ this.diskType = diskType;
+ return this;
+ }
+
+ /**
+ * Get whether disk is dynamic disk or basic disk.
+ *
+ * @return the diskConfiguration value
+ */
+ public String diskConfiguration() {
+ return this.diskConfiguration;
+ }
+
+ /**
+ * Set whether disk is dynamic disk or basic disk.
+ *
+ * @param diskConfiguration the diskConfiguration value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withDiskConfiguration(String diskConfiguration) {
+ this.diskConfiguration = diskConfiguration;
+ return this;
+ }
+
+ /**
+ * Get volumes of the disk.
+ *
+ * @return the volumeList value
+ */
+ public List volumeList() {
+ return this.volumeList;
+ }
+
+ /**
+ * Set volumes of the disk.
+ *
+ * @param volumeList the volumeList value to set
+ * @return the InMageDiskDetails object itself.
+ */
+ public InMageDiskDetails withVolumeList(List volumeList) {
+ this.volumeList = volumeList;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskExclusionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskExclusionInput.java
new file mode 100644
index 0000000000000..4cf26be8bffe6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskExclusionInput.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DiskExclusionInput when doing enable protection of virtual machine in InMage
+ * provider.
+ */
+public class InMageDiskExclusionInput {
+ /**
+ * The volume label based option for disk exclusion.
+ */
+ @JsonProperty(value = "volumeOptions")
+ private List volumeOptions;
+
+ /**
+ * The guest disk signature based option for disk exclusion.
+ */
+ @JsonProperty(value = "diskSignatureOptions")
+ private List diskSignatureOptions;
+
+ /**
+ * Get the volume label based option for disk exclusion.
+ *
+ * @return the volumeOptions value
+ */
+ public List volumeOptions() {
+ return this.volumeOptions;
+ }
+
+ /**
+ * Set the volume label based option for disk exclusion.
+ *
+ * @param volumeOptions the volumeOptions value to set
+ * @return the InMageDiskExclusionInput object itself.
+ */
+ public InMageDiskExclusionInput withVolumeOptions(List volumeOptions) {
+ this.volumeOptions = volumeOptions;
+ return this;
+ }
+
+ /**
+ * Get the guest disk signature based option for disk exclusion.
+ *
+ * @return the diskSignatureOptions value
+ */
+ public List diskSignatureOptions() {
+ return this.diskSignatureOptions;
+ }
+
+ /**
+ * Set the guest disk signature based option for disk exclusion.
+ *
+ * @param diskSignatureOptions the diskSignatureOptions value to set
+ * @return the InMageDiskExclusionInput object itself.
+ */
+ public InMageDiskExclusionInput withDiskSignatureOptions(List diskSignatureOptions) {
+ this.diskSignatureOptions = diskSignatureOptions;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskSignatureExclusionOptions.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskSignatureExclusionOptions.java
new file mode 100644
index 0000000000000..4298311dbc998
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageDiskSignatureExclusionOptions.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Guest disk signature based disk exclusion option when doing enable
+ * protection of virtual machine in InMage provider.
+ */
+public class InMageDiskSignatureExclusionOptions {
+ /**
+ * The guest signature of disk to be excluded from replication.
+ */
+ @JsonProperty(value = "diskSignature")
+ private String diskSignature;
+
+ /**
+ * Get the guest signature of disk to be excluded from replication.
+ *
+ * @return the diskSignature value
+ */
+ public String diskSignature() {
+ return this.diskSignature;
+ }
+
+ /**
+ * Set the guest signature of disk to be excluded from replication.
+ *
+ * @param diskSignature the diskSignature value to set
+ * @return the InMageDiskSignatureExclusionOptions object itself.
+ */
+ public InMageDiskSignatureExclusionOptions withDiskSignature(String diskSignature) {
+ this.diskSignature = diskSignature;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageEnableProtectionInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageEnableProtectionInput.java
new file mode 100644
index 0000000000000..e675c7b7fa761
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageEnableProtectionInput.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * VMware Azure specific enable protection input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMageEnableProtectionInput extends EnableProtectionProviderSpecificInput {
+ /**
+ * The Vm Name.
+ */
+ @JsonProperty(value = "vmFriendlyName")
+ private String vmFriendlyName;
+
+ /**
+ * The Master Target Id.
+ */
+ @JsonProperty(value = "masterTargetId", required = true)
+ private String masterTargetId;
+
+ /**
+ * The Process Server Id.
+ */
+ @JsonProperty(value = "processServerId", required = true)
+ private String processServerId;
+
+ /**
+ * The retention drive to use on the MT.
+ */
+ @JsonProperty(value = "retentionDrive", required = true)
+ private String retentionDrive;
+
+ /**
+ * The CS account Id.
+ */
+ @JsonProperty(value = "runAsAccountId")
+ private String runAsAccountId;
+
+ /**
+ * The multi vm group Id.
+ */
+ @JsonProperty(value = "multiVmGroupId", required = true)
+ private String multiVmGroupId;
+
+ /**
+ * The multi vm group name.
+ */
+ @JsonProperty(value = "multiVmGroupName", required = true)
+ private String multiVmGroupName;
+
+ /**
+ * The target data store name.
+ */
+ @JsonProperty(value = "datastoreName")
+ private String datastoreName;
+
+ /**
+ * The enable disk exclusion input.
+ */
+ @JsonProperty(value = "diskExclusionInput")
+ private InMageDiskExclusionInput diskExclusionInput;
+
+ /**
+ * The disks to include list.
+ */
+ @JsonProperty(value = "disksToInclude")
+ private List disksToInclude;
+
+ /**
+ * Get the Vm Name.
+ *
+ * @return the vmFriendlyName value
+ */
+ public String vmFriendlyName() {
+ return this.vmFriendlyName;
+ }
+
+ /**
+ * Set the Vm Name.
+ *
+ * @param vmFriendlyName the vmFriendlyName value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withVmFriendlyName(String vmFriendlyName) {
+ this.vmFriendlyName = vmFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the Master Target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the Master Target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the Process Server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the Process Server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the retention drive to use on the MT.
+ *
+ * @return the retentionDrive value
+ */
+ public String retentionDrive() {
+ return this.retentionDrive;
+ }
+
+ /**
+ * Set the retention drive to use on the MT.
+ *
+ * @param retentionDrive the retentionDrive value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withRetentionDrive(String retentionDrive) {
+ this.retentionDrive = retentionDrive;
+ return this;
+ }
+
+ /**
+ * Get the CS account Id.
+ *
+ * @return the runAsAccountId value
+ */
+ public String runAsAccountId() {
+ return this.runAsAccountId;
+ }
+
+ /**
+ * Set the CS account Id.
+ *
+ * @param runAsAccountId the runAsAccountId value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withRunAsAccountId(String runAsAccountId) {
+ this.runAsAccountId = runAsAccountId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group Id.
+ *
+ * @return the multiVmGroupId value
+ */
+ public String multiVmGroupId() {
+ return this.multiVmGroupId;
+ }
+
+ /**
+ * Set the multi vm group Id.
+ *
+ * @param multiVmGroupId the multiVmGroupId value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withMultiVmGroupId(String multiVmGroupId) {
+ this.multiVmGroupId = multiVmGroupId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group name.
+ *
+ * @return the multiVmGroupName value
+ */
+ public String multiVmGroupName() {
+ return this.multiVmGroupName;
+ }
+
+ /**
+ * Set the multi vm group name.
+ *
+ * @param multiVmGroupName the multiVmGroupName value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withMultiVmGroupName(String multiVmGroupName) {
+ this.multiVmGroupName = multiVmGroupName;
+ return this;
+ }
+
+ /**
+ * Get the target data store name.
+ *
+ * @return the datastoreName value
+ */
+ public String datastoreName() {
+ return this.datastoreName;
+ }
+
+ /**
+ * Set the target data store name.
+ *
+ * @param datastoreName the datastoreName value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withDatastoreName(String datastoreName) {
+ this.datastoreName = datastoreName;
+ return this;
+ }
+
+ /**
+ * Get the enable disk exclusion input.
+ *
+ * @return the diskExclusionInput value
+ */
+ public InMageDiskExclusionInput diskExclusionInput() {
+ return this.diskExclusionInput;
+ }
+
+ /**
+ * Set the enable disk exclusion input.
+ *
+ * @param diskExclusionInput the diskExclusionInput value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withDiskExclusionInput(InMageDiskExclusionInput diskExclusionInput) {
+ this.diskExclusionInput = diskExclusionInput;
+ return this;
+ }
+
+ /**
+ * Get the disks to include list.
+ *
+ * @return the disksToInclude value
+ */
+ public List disksToInclude() {
+ return this.disksToInclude;
+ }
+
+ /**
+ * Set the disks to include list.
+ *
+ * @param disksToInclude the disksToInclude value to set
+ * @return the InMageEnableProtectionInput object itself.
+ */
+ public InMageEnableProtectionInput withDisksToInclude(List disksToInclude) {
+ this.disksToInclude = disksToInclude;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageFailoverProviderInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageFailoverProviderInput.java
new file mode 100644
index 0000000000000..70c7eec014e9a
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageFailoverProviderInput.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Provider specific input for InMage failover.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMageFailoverProviderInput extends ProviderSpecificFailoverInput {
+ /**
+ * The recovery point type. Values from LatestTime, LatestTag or Custom. In
+ * the case of custom, the recovery point provided by RecoveryPointId will
+ * be used. In the other two cases, recovery point id will be ignored.
+ * Possible values include: 'LatestTime', 'LatestTag', 'Custom'.
+ */
+ @JsonProperty(value = "recoveryPointType")
+ private RecoveryPointType recoveryPointType;
+
+ /**
+ * The recovery point id to be passed to failover to a particular recovery
+ * point. In case of latest recovery point, null should be passed.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Get the recovery point type. Values from LatestTime, LatestTag or Custom. In the case of custom, the recovery point provided by RecoveryPointId will be used. In the other two cases, recovery point id will be ignored. Possible values include: 'LatestTime', 'LatestTag', 'Custom'.
+ *
+ * @return the recoveryPointType value
+ */
+ public RecoveryPointType recoveryPointType() {
+ return this.recoveryPointType;
+ }
+
+ /**
+ * Set the recovery point type. Values from LatestTime, LatestTag or Custom. In the case of custom, the recovery point provided by RecoveryPointId will be used. In the other two cases, recovery point id will be ignored. Possible values include: 'LatestTime', 'LatestTag', 'Custom'.
+ *
+ * @param recoveryPointType the recoveryPointType value to set
+ * @return the InMageFailoverProviderInput object itself.
+ */
+ public InMageFailoverProviderInput withRecoveryPointType(RecoveryPointType recoveryPointType) {
+ this.recoveryPointType = recoveryPointType;
+ return this;
+ }
+
+ /**
+ * Get the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set the recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the InMageFailoverProviderInput object itself.
+ */
+ public InMageFailoverProviderInput withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyDetails.java
new file mode 100644
index 0000000000000..e6bd2b40ad273
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyDetails.java
@@ -0,0 +1,126 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage specific protection profile details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMagePolicyDetails extends PolicyProviderSpecificDetails {
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The app consistent snapshot frequency in minutes.
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the InMagePolicyDetails object itself.
+ */
+ public InMagePolicyDetails withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the InMagePolicyDetails object itself.
+ */
+ public InMagePolicyDetails withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency in minutes.
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency in minutes.
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the InMagePolicyDetails object itself.
+ */
+ public InMagePolicyDetails withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMagePolicyDetails object itself.
+ */
+ public InMagePolicyDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyInput.java
new file mode 100644
index 0000000000000..badbc41ef6eff
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMagePolicyInput.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * VMWare Azure specific protection profile Input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMagePolicyInput extends PolicyProviderSpecificInput {
+ /**
+ * The recovery point threshold in minutes.
+ */
+ @JsonProperty(value = "recoveryPointThresholdInMinutes")
+ private Integer recoveryPointThresholdInMinutes;
+
+ /**
+ * The duration in minutes until which the recovery points need to be
+ * stored.
+ */
+ @JsonProperty(value = "recoveryPointHistory")
+ private Integer recoveryPointHistory;
+
+ /**
+ * The app consistent snapshot frequency (in minutes).
+ */
+ @JsonProperty(value = "appConsistentFrequencyInMinutes")
+ private Integer appConsistentFrequencyInMinutes;
+
+ /**
+ * A value indicating whether multi-VM sync has to be enabled. Value should
+ * be 'Enabled' or 'Disabled'. Possible values include: 'Enable',
+ * 'Disable'.
+ */
+ @JsonProperty(value = "multiVmSyncStatus", required = true)
+ private SetMultiVmSyncStatus multiVmSyncStatus;
+
+ /**
+ * Get the recovery point threshold in minutes.
+ *
+ * @return the recoveryPointThresholdInMinutes value
+ */
+ public Integer recoveryPointThresholdInMinutes() {
+ return this.recoveryPointThresholdInMinutes;
+ }
+
+ /**
+ * Set the recovery point threshold in minutes.
+ *
+ * @param recoveryPointThresholdInMinutes the recoveryPointThresholdInMinutes value to set
+ * @return the InMagePolicyInput object itself.
+ */
+ public InMagePolicyInput withRecoveryPointThresholdInMinutes(Integer recoveryPointThresholdInMinutes) {
+ this.recoveryPointThresholdInMinutes = recoveryPointThresholdInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the duration in minutes until which the recovery points need to be stored.
+ *
+ * @return the recoveryPointHistory value
+ */
+ public Integer recoveryPointHistory() {
+ return this.recoveryPointHistory;
+ }
+
+ /**
+ * Set the duration in minutes until which the recovery points need to be stored.
+ *
+ * @param recoveryPointHistory the recoveryPointHistory value to set
+ * @return the InMagePolicyInput object itself.
+ */
+ public InMagePolicyInput withRecoveryPointHistory(Integer recoveryPointHistory) {
+ this.recoveryPointHistory = recoveryPointHistory;
+ return this;
+ }
+
+ /**
+ * Get the app consistent snapshot frequency (in minutes).
+ *
+ * @return the appConsistentFrequencyInMinutes value
+ */
+ public Integer appConsistentFrequencyInMinutes() {
+ return this.appConsistentFrequencyInMinutes;
+ }
+
+ /**
+ * Set the app consistent snapshot frequency (in minutes).
+ *
+ * @param appConsistentFrequencyInMinutes the appConsistentFrequencyInMinutes value to set
+ * @return the InMagePolicyInput object itself.
+ */
+ public InMagePolicyInput withAppConsistentFrequencyInMinutes(Integer appConsistentFrequencyInMinutes) {
+ this.appConsistentFrequencyInMinutes = appConsistentFrequencyInMinutes;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public SetMultiVmSyncStatus multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable'.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMagePolicyInput object itself.
+ */
+ public InMagePolicyInput withMultiVmSyncStatus(SetMultiVmSyncStatus multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageProtectedDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageProtectedDiskDetails.java
new file mode 100644
index 0000000000000..a38cedcd8e5d0
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageProtectedDiskDetails.java
@@ -0,0 +1,408 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * InMage protected disk details.
+ */
+public class InMageProtectedDiskDetails {
+ /**
+ * The disk id.
+ */
+ @JsonProperty(value = "diskId")
+ private String diskId;
+
+ /**
+ * The disk name.
+ */
+ @JsonProperty(value = "diskName")
+ private String diskName;
+
+ /**
+ * The protection stage.
+ */
+ @JsonProperty(value = "protectionStage")
+ private String protectionStage;
+
+ /**
+ * The health error code for the disk.
+ */
+ @JsonProperty(value = "healthErrorCode")
+ private String healthErrorCode;
+
+ /**
+ * The RPO in seconds.
+ */
+ @JsonProperty(value = "rpoInSeconds")
+ private Long rpoInSeconds;
+
+ /**
+ * A value indicating whether resync is required for this disk.
+ */
+ @JsonProperty(value = "resyncRequired")
+ private String resyncRequired;
+
+ /**
+ * The resync progress percentage.
+ */
+ @JsonProperty(value = "resyncProgressPercentage")
+ private Integer resyncProgressPercentage;
+
+ /**
+ * The resync duration in seconds.
+ */
+ @JsonProperty(value = "resyncDurationInSeconds")
+ private Long resyncDurationInSeconds;
+
+ /**
+ * The disk capacity in bytes.
+ */
+ @JsonProperty(value = "diskCapacityInBytes")
+ private Long diskCapacityInBytes;
+
+ /**
+ * The file system capacity in bytes.
+ */
+ @JsonProperty(value = "fileSystemCapacityInBytes")
+ private Long fileSystemCapacityInBytes;
+
+ /**
+ * The source data transit in MB.
+ */
+ @JsonProperty(value = "sourceDataInMB")
+ private Double sourceDataInMB;
+
+ /**
+ * The PS data transit in MB.
+ */
+ @JsonProperty(value = "psDataInMB")
+ private Double psDataInMB;
+
+ /**
+ * The target data transit in MB.
+ */
+ @JsonProperty(value = "targetDataInMB")
+ private Double targetDataInMB;
+
+ /**
+ * A value indicating whether disk is resized.
+ */
+ @JsonProperty(value = "diskResized")
+ private String diskResized;
+
+ /**
+ * The last RPO calculated time.
+ */
+ @JsonProperty(value = "lastRpoCalculatedTime")
+ private DateTime lastRpoCalculatedTime;
+
+ /**
+ * Get the disk id.
+ *
+ * @return the diskId value
+ */
+ public String diskId() {
+ return this.diskId;
+ }
+
+ /**
+ * Set the disk id.
+ *
+ * @param diskId the diskId value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withDiskId(String diskId) {
+ this.diskId = diskId;
+ return this;
+ }
+
+ /**
+ * Get the disk name.
+ *
+ * @return the diskName value
+ */
+ public String diskName() {
+ return this.diskName;
+ }
+
+ /**
+ * Set the disk name.
+ *
+ * @param diskName the diskName value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withDiskName(String diskName) {
+ this.diskName = diskName;
+ return this;
+ }
+
+ /**
+ * Get the protection stage.
+ *
+ * @return the protectionStage value
+ */
+ public String protectionStage() {
+ return this.protectionStage;
+ }
+
+ /**
+ * Set the protection stage.
+ *
+ * @param protectionStage the protectionStage value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withProtectionStage(String protectionStage) {
+ this.protectionStage = protectionStage;
+ return this;
+ }
+
+ /**
+ * Get the health error code for the disk.
+ *
+ * @return the healthErrorCode value
+ */
+ public String healthErrorCode() {
+ return this.healthErrorCode;
+ }
+
+ /**
+ * Set the health error code for the disk.
+ *
+ * @param healthErrorCode the healthErrorCode value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withHealthErrorCode(String healthErrorCode) {
+ this.healthErrorCode = healthErrorCode;
+ return this;
+ }
+
+ /**
+ * Get the RPO in seconds.
+ *
+ * @return the rpoInSeconds value
+ */
+ public Long rpoInSeconds() {
+ return this.rpoInSeconds;
+ }
+
+ /**
+ * Set the RPO in seconds.
+ *
+ * @param rpoInSeconds the rpoInSeconds value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withRpoInSeconds(Long rpoInSeconds) {
+ this.rpoInSeconds = rpoInSeconds;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether resync is required for this disk.
+ *
+ * @return the resyncRequired value
+ */
+ public String resyncRequired() {
+ return this.resyncRequired;
+ }
+
+ /**
+ * Set a value indicating whether resync is required for this disk.
+ *
+ * @param resyncRequired the resyncRequired value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withResyncRequired(String resyncRequired) {
+ this.resyncRequired = resyncRequired;
+ return this;
+ }
+
+ /**
+ * Get the resync progress percentage.
+ *
+ * @return the resyncProgressPercentage value
+ */
+ public Integer resyncProgressPercentage() {
+ return this.resyncProgressPercentage;
+ }
+
+ /**
+ * Set the resync progress percentage.
+ *
+ * @param resyncProgressPercentage the resyncProgressPercentage value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withResyncProgressPercentage(Integer resyncProgressPercentage) {
+ this.resyncProgressPercentage = resyncProgressPercentage;
+ return this;
+ }
+
+ /**
+ * Get the resync duration in seconds.
+ *
+ * @return the resyncDurationInSeconds value
+ */
+ public Long resyncDurationInSeconds() {
+ return this.resyncDurationInSeconds;
+ }
+
+ /**
+ * Set the resync duration in seconds.
+ *
+ * @param resyncDurationInSeconds the resyncDurationInSeconds value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withResyncDurationInSeconds(Long resyncDurationInSeconds) {
+ this.resyncDurationInSeconds = resyncDurationInSeconds;
+ return this;
+ }
+
+ /**
+ * Get the disk capacity in bytes.
+ *
+ * @return the diskCapacityInBytes value
+ */
+ public Long diskCapacityInBytes() {
+ return this.diskCapacityInBytes;
+ }
+
+ /**
+ * Set the disk capacity in bytes.
+ *
+ * @param diskCapacityInBytes the diskCapacityInBytes value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withDiskCapacityInBytes(Long diskCapacityInBytes) {
+ this.diskCapacityInBytes = diskCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the file system capacity in bytes.
+ *
+ * @return the fileSystemCapacityInBytes value
+ */
+ public Long fileSystemCapacityInBytes() {
+ return this.fileSystemCapacityInBytes;
+ }
+
+ /**
+ * Set the file system capacity in bytes.
+ *
+ * @param fileSystemCapacityInBytes the fileSystemCapacityInBytes value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withFileSystemCapacityInBytes(Long fileSystemCapacityInBytes) {
+ this.fileSystemCapacityInBytes = fileSystemCapacityInBytes;
+ return this;
+ }
+
+ /**
+ * Get the source data transit in MB.
+ *
+ * @return the sourceDataInMB value
+ */
+ public Double sourceDataInMB() {
+ return this.sourceDataInMB;
+ }
+
+ /**
+ * Set the source data transit in MB.
+ *
+ * @param sourceDataInMB the sourceDataInMB value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withSourceDataInMB(Double sourceDataInMB) {
+ this.sourceDataInMB = sourceDataInMB;
+ return this;
+ }
+
+ /**
+ * Get the PS data transit in MB.
+ *
+ * @return the psDataInMB value
+ */
+ public Double psDataInMB() {
+ return this.psDataInMB;
+ }
+
+ /**
+ * Set the PS data transit in MB.
+ *
+ * @param psDataInMB the psDataInMB value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withPsDataInMB(Double psDataInMB) {
+ this.psDataInMB = psDataInMB;
+ return this;
+ }
+
+ /**
+ * Get the target data transit in MB.
+ *
+ * @return the targetDataInMB value
+ */
+ public Double targetDataInMB() {
+ return this.targetDataInMB;
+ }
+
+ /**
+ * Set the target data transit in MB.
+ *
+ * @param targetDataInMB the targetDataInMB value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withTargetDataInMB(Double targetDataInMB) {
+ this.targetDataInMB = targetDataInMB;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether disk is resized.
+ *
+ * @return the diskResized value
+ */
+ public String diskResized() {
+ return this.diskResized;
+ }
+
+ /**
+ * Set a value indicating whether disk is resized.
+ *
+ * @param diskResized the diskResized value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withDiskResized(String diskResized) {
+ this.diskResized = diskResized;
+ return this;
+ }
+
+ /**
+ * Get the last RPO calculated time.
+ *
+ * @return the lastRpoCalculatedTime value
+ */
+ public DateTime lastRpoCalculatedTime() {
+ return this.lastRpoCalculatedTime;
+ }
+
+ /**
+ * Set the last RPO calculated time.
+ *
+ * @param lastRpoCalculatedTime the lastRpoCalculatedTime value to set
+ * @return the InMageProtectedDiskDetails object itself.
+ */
+ public InMageProtectedDiskDetails withLastRpoCalculatedTime(DateTime lastRpoCalculatedTime) {
+ this.lastRpoCalculatedTime = lastRpoCalculatedTime;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReplicationDetails.java
new file mode 100644
index 0000000000000..c4b3cef6a7bb8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReplicationDetails.java
@@ -0,0 +1,992 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMage provider specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMageReplicationDetails extends ReplicationProviderSpecificSettings {
+ /**
+ * The active location of the VM. If the VM is being protected from Azure,
+ * this field will take values from { Azure, OnPrem }. If the VM is being
+ * protected between two data-centers, this field will be OnPrem always.
+ */
+ @JsonProperty(value = "activeSiteType")
+ private String activeSiteType;
+
+ /**
+ * The CPU count of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmCPUCount")
+ private Integer sourceVmCPUCount;
+
+ /**
+ * The RAM size of the VM on the primary side.
+ */
+ @JsonProperty(value = "sourceVmRAMSizeInMB")
+ private Integer sourceVmRAMSizeInMB;
+
+ /**
+ * The OS details.
+ */
+ @JsonProperty(value = "osDetails")
+ private OSDiskDetails osDetails;
+
+ /**
+ * The protection stage.
+ */
+ @JsonProperty(value = "protectionStage")
+ private String protectionStage;
+
+ /**
+ * The virtual machine Id.
+ */
+ @JsonProperty(value = "vmId")
+ private String vmId;
+
+ /**
+ * The protection state for the vm.
+ */
+ @JsonProperty(value = "vmProtectionState")
+ private String vmProtectionState;
+
+ /**
+ * The protection state description for the vm.
+ */
+ @JsonProperty(value = "vmProtectionStateDescription")
+ private String vmProtectionStateDescription;
+
+ /**
+ * The resync details of the machine.
+ */
+ @JsonProperty(value = "resyncDetails")
+ private InitialReplicationDetails resyncDetails;
+
+ /**
+ * The retention window start time.
+ */
+ @JsonProperty(value = "retentionWindowStart")
+ private DateTime retentionWindowStart;
+
+ /**
+ * The retention window end time.
+ */
+ @JsonProperty(value = "retentionWindowEnd")
+ private DateTime retentionWindowEnd;
+
+ /**
+ * The compressed data change rate in MB.
+ */
+ @JsonProperty(value = "compressedDataRateInMB")
+ private Double compressedDataRateInMB;
+
+ /**
+ * The uncompressed data change rate in MB.
+ */
+ @JsonProperty(value = "uncompressedDataRateInMB")
+ private Double uncompressedDataRateInMB;
+
+ /**
+ * The RPO in seconds.
+ */
+ @JsonProperty(value = "rpoInSeconds")
+ private Long rpoInSeconds;
+
+ /**
+ * The list of protected disks.
+ */
+ @JsonProperty(value = "protectedDisks")
+ private List protectedDisks;
+
+ /**
+ * The source IP address.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The last heartbeat received from the source server.
+ */
+ @JsonProperty(value = "lastHeartbeat")
+ private DateTime lastHeartbeat;
+
+ /**
+ * The process server Id.
+ */
+ @JsonProperty(value = "processServerId")
+ private String processServerId;
+
+ /**
+ * The master target Id.
+ */
+ @JsonProperty(value = "masterTargetId")
+ private String masterTargetId;
+
+ /**
+ * The collection of Consistency points.
+ */
+ @JsonProperty(value = "consistencyPoints")
+ private Map consistencyPoints;
+
+ /**
+ * A value indicating whether any disk is resized for this VM.
+ */
+ @JsonProperty(value = "diskResized")
+ private String diskResized;
+
+ /**
+ * A value indicating whether the source server requires a restart after
+ * update.
+ */
+ @JsonProperty(value = "rebootAfterUpdateStatus")
+ private String rebootAfterUpdateStatus;
+
+ /**
+ * The multi vm group Id, if any.
+ */
+ @JsonProperty(value = "multiVmGroupId")
+ private String multiVmGroupId;
+
+ /**
+ * The multi vm group name, if any.
+ */
+ @JsonProperty(value = "multiVmGroupName")
+ private String multiVmGroupName;
+
+ /**
+ * A value indicating whether the multi vm sync is enabled or disabled.
+ */
+ @JsonProperty(value = "multiVmSyncStatus")
+ private String multiVmSyncStatus;
+
+ /**
+ * The agent details.
+ */
+ @JsonProperty(value = "agentDetails")
+ private InMageAgentDetails agentDetails;
+
+ /**
+ * The vCenter infrastructure Id.
+ */
+ @JsonProperty(value = "vCenterInfrastructureId")
+ private String vCenterInfrastructureId;
+
+ /**
+ * The infrastructure VM Id.
+ */
+ @JsonProperty(value = "infrastructureVmId")
+ private String infrastructureVmId;
+
+ /**
+ * The PE Network details.
+ */
+ @JsonProperty(value = "vmNics")
+ private List vmNics;
+
+ /**
+ * A value indicating the discovery type of the machine.
+ */
+ @JsonProperty(value = "discoveryType")
+ private String discoveryType;
+
+ /**
+ * A value indicating the underlying Azure storage account. If the VM is
+ * not running in Azure, this value shall be set to null.
+ */
+ @JsonProperty(value = "azureStorageAccountId")
+ private String azureStorageAccountId;
+
+ /**
+ * The data stores of the on-premise machine Value can be list of strings
+ * that contain data store names.
+ */
+ @JsonProperty(value = "datastores")
+ private List datastores;
+
+ /**
+ * The validation errors of the on-premise machine Value can be list of
+ * validation errors.
+ */
+ @JsonProperty(value = "validationErrors")
+ private List validationErrors;
+
+ /**
+ * The last RPO calculated time.
+ */
+ @JsonProperty(value = "lastRpoCalculatedTime")
+ private DateTime lastRpoCalculatedTime;
+
+ /**
+ * The last update time received from on-prem components.
+ */
+ @JsonProperty(value = "lastUpdateReceivedTime")
+ private DateTime lastUpdateReceivedTime;
+
+ /**
+ * The replica id of the protected item.
+ */
+ @JsonProperty(value = "replicaId")
+ private String replicaId;
+
+ /**
+ * The OS Version of the protected item.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /**
+ * Get the active location of the VM. If the VM is being protected from Azure, this field will take values from { Azure, OnPrem }. If the VM is being protected between two data-centers, this field will be OnPrem always.
+ *
+ * @return the activeSiteType value
+ */
+ public String activeSiteType() {
+ return this.activeSiteType;
+ }
+
+ /**
+ * Set the active location of the VM. If the VM is being protected from Azure, this field will take values from { Azure, OnPrem }. If the VM is being protected between two data-centers, this field will be OnPrem always.
+ *
+ * @param activeSiteType the activeSiteType value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withActiveSiteType(String activeSiteType) {
+ this.activeSiteType = activeSiteType;
+ return this;
+ }
+
+ /**
+ * Get the CPU count of the VM on the primary side.
+ *
+ * @return the sourceVmCPUCount value
+ */
+ public Integer sourceVmCPUCount() {
+ return this.sourceVmCPUCount;
+ }
+
+ /**
+ * Set the CPU count of the VM on the primary side.
+ *
+ * @param sourceVmCPUCount the sourceVmCPUCount value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withSourceVmCPUCount(Integer sourceVmCPUCount) {
+ this.sourceVmCPUCount = sourceVmCPUCount;
+ return this;
+ }
+
+ /**
+ * Get the RAM size of the VM on the primary side.
+ *
+ * @return the sourceVmRAMSizeInMB value
+ */
+ public Integer sourceVmRAMSizeInMB() {
+ return this.sourceVmRAMSizeInMB;
+ }
+
+ /**
+ * Set the RAM size of the VM on the primary side.
+ *
+ * @param sourceVmRAMSizeInMB the sourceVmRAMSizeInMB value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withSourceVmRAMSizeInMB(Integer sourceVmRAMSizeInMB) {
+ this.sourceVmRAMSizeInMB = sourceVmRAMSizeInMB;
+ return this;
+ }
+
+ /**
+ * Get the OS details.
+ *
+ * @return the osDetails value
+ */
+ public OSDiskDetails osDetails() {
+ return this.osDetails;
+ }
+
+ /**
+ * Set the OS details.
+ *
+ * @param osDetails the osDetails value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withOsDetails(OSDiskDetails osDetails) {
+ this.osDetails = osDetails;
+ return this;
+ }
+
+ /**
+ * Get the protection stage.
+ *
+ * @return the protectionStage value
+ */
+ public String protectionStage() {
+ return this.protectionStage;
+ }
+
+ /**
+ * Set the protection stage.
+ *
+ * @param protectionStage the protectionStage value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withProtectionStage(String protectionStage) {
+ this.protectionStage = protectionStage;
+ return this;
+ }
+
+ /**
+ * Get the virtual machine Id.
+ *
+ * @return the vmId value
+ */
+ public String vmId() {
+ return this.vmId;
+ }
+
+ /**
+ * Set the virtual machine Id.
+ *
+ * @param vmId the vmId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withVmId(String vmId) {
+ this.vmId = vmId;
+ return this;
+ }
+
+ /**
+ * Get the protection state for the vm.
+ *
+ * @return the vmProtectionState value
+ */
+ public String vmProtectionState() {
+ return this.vmProtectionState;
+ }
+
+ /**
+ * Set the protection state for the vm.
+ *
+ * @param vmProtectionState the vmProtectionState value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withVmProtectionState(String vmProtectionState) {
+ this.vmProtectionState = vmProtectionState;
+ return this;
+ }
+
+ /**
+ * Get the protection state description for the vm.
+ *
+ * @return the vmProtectionStateDescription value
+ */
+ public String vmProtectionStateDescription() {
+ return this.vmProtectionStateDescription;
+ }
+
+ /**
+ * Set the protection state description for the vm.
+ *
+ * @param vmProtectionStateDescription the vmProtectionStateDescription value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withVmProtectionStateDescription(String vmProtectionStateDescription) {
+ this.vmProtectionStateDescription = vmProtectionStateDescription;
+ return this;
+ }
+
+ /**
+ * Get the resync details of the machine.
+ *
+ * @return the resyncDetails value
+ */
+ public InitialReplicationDetails resyncDetails() {
+ return this.resyncDetails;
+ }
+
+ /**
+ * Set the resync details of the machine.
+ *
+ * @param resyncDetails the resyncDetails value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withResyncDetails(InitialReplicationDetails resyncDetails) {
+ this.resyncDetails = resyncDetails;
+ return this;
+ }
+
+ /**
+ * Get the retention window start time.
+ *
+ * @return the retentionWindowStart value
+ */
+ public DateTime retentionWindowStart() {
+ return this.retentionWindowStart;
+ }
+
+ /**
+ * Set the retention window start time.
+ *
+ * @param retentionWindowStart the retentionWindowStart value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withRetentionWindowStart(DateTime retentionWindowStart) {
+ this.retentionWindowStart = retentionWindowStart;
+ return this;
+ }
+
+ /**
+ * Get the retention window end time.
+ *
+ * @return the retentionWindowEnd value
+ */
+ public DateTime retentionWindowEnd() {
+ return this.retentionWindowEnd;
+ }
+
+ /**
+ * Set the retention window end time.
+ *
+ * @param retentionWindowEnd the retentionWindowEnd value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withRetentionWindowEnd(DateTime retentionWindowEnd) {
+ this.retentionWindowEnd = retentionWindowEnd;
+ return this;
+ }
+
+ /**
+ * Get the compressed data change rate in MB.
+ *
+ * @return the compressedDataRateInMB value
+ */
+ public Double compressedDataRateInMB() {
+ return this.compressedDataRateInMB;
+ }
+
+ /**
+ * Set the compressed data change rate in MB.
+ *
+ * @param compressedDataRateInMB the compressedDataRateInMB value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withCompressedDataRateInMB(Double compressedDataRateInMB) {
+ this.compressedDataRateInMB = compressedDataRateInMB;
+ return this;
+ }
+
+ /**
+ * Get the uncompressed data change rate in MB.
+ *
+ * @return the uncompressedDataRateInMB value
+ */
+ public Double uncompressedDataRateInMB() {
+ return this.uncompressedDataRateInMB;
+ }
+
+ /**
+ * Set the uncompressed data change rate in MB.
+ *
+ * @param uncompressedDataRateInMB the uncompressedDataRateInMB value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withUncompressedDataRateInMB(Double uncompressedDataRateInMB) {
+ this.uncompressedDataRateInMB = uncompressedDataRateInMB;
+ return this;
+ }
+
+ /**
+ * Get the RPO in seconds.
+ *
+ * @return the rpoInSeconds value
+ */
+ public Long rpoInSeconds() {
+ return this.rpoInSeconds;
+ }
+
+ /**
+ * Set the RPO in seconds.
+ *
+ * @param rpoInSeconds the rpoInSeconds value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withRpoInSeconds(Long rpoInSeconds) {
+ this.rpoInSeconds = rpoInSeconds;
+ return this;
+ }
+
+ /**
+ * Get the list of protected disks.
+ *
+ * @return the protectedDisks value
+ */
+ public List protectedDisks() {
+ return this.protectedDisks;
+ }
+
+ /**
+ * Set the list of protected disks.
+ *
+ * @param protectedDisks the protectedDisks value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withProtectedDisks(List protectedDisks) {
+ this.protectedDisks = protectedDisks;
+ return this;
+ }
+
+ /**
+ * Get the source IP address.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the source IP address.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the last heartbeat received from the source server.
+ *
+ * @return the lastHeartbeat value
+ */
+ public DateTime lastHeartbeat() {
+ return this.lastHeartbeat;
+ }
+
+ /**
+ * Set the last heartbeat received from the source server.
+ *
+ * @param lastHeartbeat the lastHeartbeat value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withLastHeartbeat(DateTime lastHeartbeat) {
+ this.lastHeartbeat = lastHeartbeat;
+ return this;
+ }
+
+ /**
+ * Get the process server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the process server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the master target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the master target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the collection of Consistency points.
+ *
+ * @return the consistencyPoints value
+ */
+ public Map consistencyPoints() {
+ return this.consistencyPoints;
+ }
+
+ /**
+ * Set the collection of Consistency points.
+ *
+ * @param consistencyPoints the consistencyPoints value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withConsistencyPoints(Map consistencyPoints) {
+ this.consistencyPoints = consistencyPoints;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether any disk is resized for this VM.
+ *
+ * @return the diskResized value
+ */
+ public String diskResized() {
+ return this.diskResized;
+ }
+
+ /**
+ * Set a value indicating whether any disk is resized for this VM.
+ *
+ * @param diskResized the diskResized value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withDiskResized(String diskResized) {
+ this.diskResized = diskResized;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the source server requires a restart after update.
+ *
+ * @return the rebootAfterUpdateStatus value
+ */
+ public String rebootAfterUpdateStatus() {
+ return this.rebootAfterUpdateStatus;
+ }
+
+ /**
+ * Set a value indicating whether the source server requires a restart after update.
+ *
+ * @param rebootAfterUpdateStatus the rebootAfterUpdateStatus value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withRebootAfterUpdateStatus(String rebootAfterUpdateStatus) {
+ this.rebootAfterUpdateStatus = rebootAfterUpdateStatus;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group Id, if any.
+ *
+ * @return the multiVmGroupId value
+ */
+ public String multiVmGroupId() {
+ return this.multiVmGroupId;
+ }
+
+ /**
+ * Set the multi vm group Id, if any.
+ *
+ * @param multiVmGroupId the multiVmGroupId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withMultiVmGroupId(String multiVmGroupId) {
+ this.multiVmGroupId = multiVmGroupId;
+ return this;
+ }
+
+ /**
+ * Get the multi vm group name, if any.
+ *
+ * @return the multiVmGroupName value
+ */
+ public String multiVmGroupName() {
+ return this.multiVmGroupName;
+ }
+
+ /**
+ * Set the multi vm group name, if any.
+ *
+ * @param multiVmGroupName the multiVmGroupName value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withMultiVmGroupName(String multiVmGroupName) {
+ this.multiVmGroupName = multiVmGroupName;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the multi vm sync is enabled or disabled.
+ *
+ * @return the multiVmSyncStatus value
+ */
+ public String multiVmSyncStatus() {
+ return this.multiVmSyncStatus;
+ }
+
+ /**
+ * Set a value indicating whether the multi vm sync is enabled or disabled.
+ *
+ * @param multiVmSyncStatus the multiVmSyncStatus value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withMultiVmSyncStatus(String multiVmSyncStatus) {
+ this.multiVmSyncStatus = multiVmSyncStatus;
+ return this;
+ }
+
+ /**
+ * Get the agent details.
+ *
+ * @return the agentDetails value
+ */
+ public InMageAgentDetails agentDetails() {
+ return this.agentDetails;
+ }
+
+ /**
+ * Set the agent details.
+ *
+ * @param agentDetails the agentDetails value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withAgentDetails(InMageAgentDetails agentDetails) {
+ this.agentDetails = agentDetails;
+ return this;
+ }
+
+ /**
+ * Get the vCenter infrastructure Id.
+ *
+ * @return the vCenterInfrastructureId value
+ */
+ public String vCenterInfrastructureId() {
+ return this.vCenterInfrastructureId;
+ }
+
+ /**
+ * Set the vCenter infrastructure Id.
+ *
+ * @param vCenterInfrastructureId the vCenterInfrastructureId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withVCenterInfrastructureId(String vCenterInfrastructureId) {
+ this.vCenterInfrastructureId = vCenterInfrastructureId;
+ return this;
+ }
+
+ /**
+ * Get the infrastructure VM Id.
+ *
+ * @return the infrastructureVmId value
+ */
+ public String infrastructureVmId() {
+ return this.infrastructureVmId;
+ }
+
+ /**
+ * Set the infrastructure VM Id.
+ *
+ * @param infrastructureVmId the infrastructureVmId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withInfrastructureVmId(String infrastructureVmId) {
+ this.infrastructureVmId = infrastructureVmId;
+ return this;
+ }
+
+ /**
+ * Get the PE Network details.
+ *
+ * @return the vmNics value
+ */
+ public List vmNics() {
+ return this.vmNics;
+ }
+
+ /**
+ * Set the PE Network details.
+ *
+ * @param vmNics the vmNics value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withVmNics(List vmNics) {
+ this.vmNics = vmNics;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the discovery type of the machine.
+ *
+ * @return the discoveryType value
+ */
+ public String discoveryType() {
+ return this.discoveryType;
+ }
+
+ /**
+ * Set a value indicating the discovery type of the machine.
+ *
+ * @param discoveryType the discoveryType value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withDiscoveryType(String discoveryType) {
+ this.discoveryType = discoveryType;
+ return this;
+ }
+
+ /**
+ * Get a value indicating the underlying Azure storage account. If the VM is not running in Azure, this value shall be set to null.
+ *
+ * @return the azureStorageAccountId value
+ */
+ public String azureStorageAccountId() {
+ return this.azureStorageAccountId;
+ }
+
+ /**
+ * Set a value indicating the underlying Azure storage account. If the VM is not running in Azure, this value shall be set to null.
+ *
+ * @param azureStorageAccountId the azureStorageAccountId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withAzureStorageAccountId(String azureStorageAccountId) {
+ this.azureStorageAccountId = azureStorageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the data stores of the on-premise machine Value can be list of strings that contain data store names.
+ *
+ * @return the datastores value
+ */
+ public List datastores() {
+ return this.datastores;
+ }
+
+ /**
+ * Set the data stores of the on-premise machine Value can be list of strings that contain data store names.
+ *
+ * @param datastores the datastores value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withDatastores(List datastores) {
+ this.datastores = datastores;
+ return this;
+ }
+
+ /**
+ * Get the validation errors of the on-premise machine Value can be list of validation errors.
+ *
+ * @return the validationErrors value
+ */
+ public List validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set the validation errors of the on-premise machine Value can be list of validation errors.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withValidationErrors(List validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+ /**
+ * Get the last RPO calculated time.
+ *
+ * @return the lastRpoCalculatedTime value
+ */
+ public DateTime lastRpoCalculatedTime() {
+ return this.lastRpoCalculatedTime;
+ }
+
+ /**
+ * Set the last RPO calculated time.
+ *
+ * @param lastRpoCalculatedTime the lastRpoCalculatedTime value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withLastRpoCalculatedTime(DateTime lastRpoCalculatedTime) {
+ this.lastRpoCalculatedTime = lastRpoCalculatedTime;
+ return this;
+ }
+
+ /**
+ * Get the last update time received from on-prem components.
+ *
+ * @return the lastUpdateReceivedTime value
+ */
+ public DateTime lastUpdateReceivedTime() {
+ return this.lastUpdateReceivedTime;
+ }
+
+ /**
+ * Set the last update time received from on-prem components.
+ *
+ * @param lastUpdateReceivedTime the lastUpdateReceivedTime value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withLastUpdateReceivedTime(DateTime lastUpdateReceivedTime) {
+ this.lastUpdateReceivedTime = lastUpdateReceivedTime;
+ return this;
+ }
+
+ /**
+ * Get the replica id of the protected item.
+ *
+ * @return the replicaId value
+ */
+ public String replicaId() {
+ return this.replicaId;
+ }
+
+ /**
+ * Set the replica id of the protected item.
+ *
+ * @param replicaId the replicaId value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withReplicaId(String replicaId) {
+ this.replicaId = replicaId;
+ return this;
+ }
+
+ /**
+ * Get the OS Version of the protected item.
+ *
+ * @return the osVersion value
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set the OS Version of the protected item.
+ *
+ * @param osVersion the osVersion value to set
+ * @return the InMageReplicationDetails object itself.
+ */
+ public InMageReplicationDetails withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReprotectInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReprotectInput.java
new file mode 100644
index 0000000000000..c930e4ddf31f2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageReprotectInput.java
@@ -0,0 +1,230 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * InMageAzureV2 specific provider input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InMage")
+public class InMageReprotectInput extends ReverseReplicationProviderSpecificInput {
+ /**
+ * The Master Target Id.
+ */
+ @JsonProperty(value = "masterTargetId", required = true)
+ private String masterTargetId;
+
+ /**
+ * The Process Server Id.
+ */
+ @JsonProperty(value = "processServerId", required = true)
+ private String processServerId;
+
+ /**
+ * The retention drive to use on the MT.
+ */
+ @JsonProperty(value = "retentionDrive", required = true)
+ private String retentionDrive;
+
+ /**
+ * The CS account Id.
+ */
+ @JsonProperty(value = "runAsAccountId")
+ private String runAsAccountId;
+
+ /**
+ * The target data store name.
+ */
+ @JsonProperty(value = "datastoreName")
+ private String datastoreName;
+
+ /**
+ * The enable disk exclusion input.
+ */
+ @JsonProperty(value = "diskExclusionInput")
+ private InMageDiskExclusionInput diskExclusionInput;
+
+ /**
+ * The Policy Id.
+ */
+ @JsonProperty(value = "profileId", required = true)
+ private String profileId;
+
+ /**
+ * The disks to include list.
+ */
+ @JsonProperty(value = "disksToInclude")
+ private List disksToInclude;
+
+ /**
+ * Get the Master Target Id.
+ *
+ * @return the masterTargetId value
+ */
+ public String masterTargetId() {
+ return this.masterTargetId;
+ }
+
+ /**
+ * Set the Master Target Id.
+ *
+ * @param masterTargetId the masterTargetId value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withMasterTargetId(String masterTargetId) {
+ this.masterTargetId = masterTargetId;
+ return this;
+ }
+
+ /**
+ * Get the Process Server Id.
+ *
+ * @return the processServerId value
+ */
+ public String processServerId() {
+ return this.processServerId;
+ }
+
+ /**
+ * Set the Process Server Id.
+ *
+ * @param processServerId the processServerId value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withProcessServerId(String processServerId) {
+ this.processServerId = processServerId;
+ return this;
+ }
+
+ /**
+ * Get the retention drive to use on the MT.
+ *
+ * @return the retentionDrive value
+ */
+ public String retentionDrive() {
+ return this.retentionDrive;
+ }
+
+ /**
+ * Set the retention drive to use on the MT.
+ *
+ * @param retentionDrive the retentionDrive value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withRetentionDrive(String retentionDrive) {
+ this.retentionDrive = retentionDrive;
+ return this;
+ }
+
+ /**
+ * Get the CS account Id.
+ *
+ * @return the runAsAccountId value
+ */
+ public String runAsAccountId() {
+ return this.runAsAccountId;
+ }
+
+ /**
+ * Set the CS account Id.
+ *
+ * @param runAsAccountId the runAsAccountId value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withRunAsAccountId(String runAsAccountId) {
+ this.runAsAccountId = runAsAccountId;
+ return this;
+ }
+
+ /**
+ * Get the target data store name.
+ *
+ * @return the datastoreName value
+ */
+ public String datastoreName() {
+ return this.datastoreName;
+ }
+
+ /**
+ * Set the target data store name.
+ *
+ * @param datastoreName the datastoreName value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withDatastoreName(String datastoreName) {
+ this.datastoreName = datastoreName;
+ return this;
+ }
+
+ /**
+ * Get the enable disk exclusion input.
+ *
+ * @return the diskExclusionInput value
+ */
+ public InMageDiskExclusionInput diskExclusionInput() {
+ return this.diskExclusionInput;
+ }
+
+ /**
+ * Set the enable disk exclusion input.
+ *
+ * @param diskExclusionInput the diskExclusionInput value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withDiskExclusionInput(InMageDiskExclusionInput diskExclusionInput) {
+ this.diskExclusionInput = diskExclusionInput;
+ return this;
+ }
+
+ /**
+ * Get the Policy Id.
+ *
+ * @return the profileId value
+ */
+ public String profileId() {
+ return this.profileId;
+ }
+
+ /**
+ * Set the Policy Id.
+ *
+ * @param profileId the profileId value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withProfileId(String profileId) {
+ this.profileId = profileId;
+ return this;
+ }
+
+ /**
+ * Get the disks to include list.
+ *
+ * @return the disksToInclude value
+ */
+ public List disksToInclude() {
+ return this.disksToInclude;
+ }
+
+ /**
+ * Set the disks to include list.
+ *
+ * @param disksToInclude the disksToInclude value to set
+ * @return the InMageReprotectInput object itself.
+ */
+ public InMageReprotectInput withDisksToInclude(List disksToInclude) {
+ this.disksToInclude = disksToInclude;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageV2RpRecoveryPointType.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageV2RpRecoveryPointType.java
new file mode 100644
index 0000000000000..123b1fb098371
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageV2RpRecoveryPointType.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for InMageV2RpRecoveryPointType.
+ */
+public enum InMageV2RpRecoveryPointType {
+ /** Enum value Latest. */
+ LATEST("Latest"),
+
+ /** Enum value LatestApplicationConsistent. */
+ LATEST_APPLICATION_CONSISTENT("LatestApplicationConsistent"),
+
+ /** Enum value LatestCrashConsistent. */
+ LATEST_CRASH_CONSISTENT("LatestCrashConsistent"),
+
+ /** Enum value LatestProcessed. */
+ LATEST_PROCESSED("LatestProcessed");
+
+ /** The actual serialized value for a InMageV2RpRecoveryPointType instance. */
+ private String value;
+
+ InMageV2RpRecoveryPointType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a InMageV2RpRecoveryPointType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed InMageV2RpRecoveryPointType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static InMageV2RpRecoveryPointType fromString(String value) {
+ InMageV2RpRecoveryPointType[] items = InMageV2RpRecoveryPointType.values();
+ for (InMageV2RpRecoveryPointType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageVolumeExclusionOptions.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageVolumeExclusionOptions.java
new file mode 100644
index 0000000000000..93cda2860fd1c
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InMageVolumeExclusionOptions.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Guest disk signature based disk exclusion option when doing enable
+ * protection of virtual machine in InMage provider.
+ */
+public class InMageVolumeExclusionOptions {
+ /**
+ * The volume label. The disk having any volume with this label will be
+ * excluded from replication.
+ */
+ @JsonProperty(value = "volumeLabel")
+ private String volumeLabel;
+
+ /**
+ * The value indicating whether to exclude multi volume disk or not. If a
+ * disk has multiple volumes and one of the volume has label matching with
+ * VolumeLabel this disk will be excluded from replication if
+ * OnlyExcludeIfSingleVolume is false.
+ */
+ @JsonProperty(value = "OnlyExcludeIfSingleVolume")
+ private String onlyExcludeIfSingleVolume;
+
+ /**
+ * Get the volume label. The disk having any volume with this label will be excluded from replication.
+ *
+ * @return the volumeLabel value
+ */
+ public String volumeLabel() {
+ return this.volumeLabel;
+ }
+
+ /**
+ * Set the volume label. The disk having any volume with this label will be excluded from replication.
+ *
+ * @param volumeLabel the volumeLabel value to set
+ * @return the InMageVolumeExclusionOptions object itself.
+ */
+ public InMageVolumeExclusionOptions withVolumeLabel(String volumeLabel) {
+ this.volumeLabel = volumeLabel;
+ return this;
+ }
+
+ /**
+ * Get the value indicating whether to exclude multi volume disk or not. If a disk has multiple volumes and one of the volume has label matching with VolumeLabel this disk will be excluded from replication if OnlyExcludeIfSingleVolume is false.
+ *
+ * @return the onlyExcludeIfSingleVolume value
+ */
+ public String onlyExcludeIfSingleVolume() {
+ return this.onlyExcludeIfSingleVolume;
+ }
+
+ /**
+ * Set the value indicating whether to exclude multi volume disk or not. If a disk has multiple volumes and one of the volume has label matching with VolumeLabel this disk will be excluded from replication if OnlyExcludeIfSingleVolume is false.
+ *
+ * @param onlyExcludeIfSingleVolume the onlyExcludeIfSingleVolume value to set
+ * @return the InMageVolumeExclusionOptions object itself.
+ */
+ public InMageVolumeExclusionOptions withOnlyExcludeIfSingleVolume(String onlyExcludeIfSingleVolume) {
+ this.onlyExcludeIfSingleVolume = onlyExcludeIfSingleVolume;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InconsistentVmDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InconsistentVmDetails.java
new file mode 100644
index 0000000000000..4c2dc7a35a465
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InconsistentVmDetails.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This class stores the monitoring details for consistency check of
+ * inconsistent Protected Entity.
+ */
+public class InconsistentVmDetails {
+ /**
+ * The Vm name.
+ */
+ @JsonProperty(value = "vmName")
+ private String vmName;
+
+ /**
+ * The Cloud name.
+ */
+ @JsonProperty(value = "cloudName")
+ private String cloudName;
+
+ /**
+ * The list of details regarding state of the Protected Entity in SRS and
+ * On prem.
+ */
+ @JsonProperty(value = "details")
+ private List details;
+
+ /**
+ * The list of error ids.
+ */
+ @JsonProperty(value = "errorIds")
+ private List errorIds;
+
+ /**
+ * Get the Vm name.
+ *
+ * @return the vmName value
+ */
+ public String vmName() {
+ return this.vmName;
+ }
+
+ /**
+ * Set the Vm name.
+ *
+ * @param vmName the vmName value to set
+ * @return the InconsistentVmDetails object itself.
+ */
+ public InconsistentVmDetails withVmName(String vmName) {
+ this.vmName = vmName;
+ return this;
+ }
+
+ /**
+ * Get the Cloud name.
+ *
+ * @return the cloudName value
+ */
+ public String cloudName() {
+ return this.cloudName;
+ }
+
+ /**
+ * Set the Cloud name.
+ *
+ * @param cloudName the cloudName value to set
+ * @return the InconsistentVmDetails object itself.
+ */
+ public InconsistentVmDetails withCloudName(String cloudName) {
+ this.cloudName = cloudName;
+ return this;
+ }
+
+ /**
+ * Get the list of details regarding state of the Protected Entity in SRS and On prem.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Set the list of details regarding state of the Protected Entity in SRS and On prem.
+ *
+ * @param details the details value to set
+ * @return the InconsistentVmDetails object itself.
+ */
+ public InconsistentVmDetails withDetails(List details) {
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * Get the list of error ids.
+ *
+ * @return the errorIds value
+ */
+ public List errorIds() {
+ return this.errorIds;
+ }
+
+ /**
+ * Set the list of error ids.
+ *
+ * @param errorIds the errorIds value to set
+ * @return the InconsistentVmDetails object itself.
+ */
+ public InconsistentVmDetails withErrorIds(List errorIds) {
+ this.errorIds = errorIds;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InitialReplicationDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InitialReplicationDetails.java
new file mode 100644
index 0000000000000..5204bdfd15ae9
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InitialReplicationDetails.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Initial replication details.
+ */
+public class InitialReplicationDetails {
+ /**
+ * Initial replication type.
+ */
+ @JsonProperty(value = "initialReplicationType")
+ private String initialReplicationType;
+
+ /**
+ * The initial replication progress percentage.
+ */
+ @JsonProperty(value = "initialReplicationProgressPercentage")
+ private String initialReplicationProgressPercentage;
+
+ /**
+ * Get initial replication type.
+ *
+ * @return the initialReplicationType value
+ */
+ public String initialReplicationType() {
+ return this.initialReplicationType;
+ }
+
+ /**
+ * Set initial replication type.
+ *
+ * @param initialReplicationType the initialReplicationType value to set
+ * @return the InitialReplicationDetails object itself.
+ */
+ public InitialReplicationDetails withInitialReplicationType(String initialReplicationType) {
+ this.initialReplicationType = initialReplicationType;
+ return this;
+ }
+
+ /**
+ * Get the initial replication progress percentage.
+ *
+ * @return the initialReplicationProgressPercentage value
+ */
+ public String initialReplicationProgressPercentage() {
+ return this.initialReplicationProgressPercentage;
+ }
+
+ /**
+ * Set the initial replication progress percentage.
+ *
+ * @param initialReplicationProgressPercentage the initialReplicationProgressPercentage value to set
+ * @return the InitialReplicationDetails object itself.
+ */
+ public InitialReplicationDetails withInitialReplicationProgressPercentage(String initialReplicationProgressPercentage) {
+ this.initialReplicationProgressPercentage = initialReplicationProgressPercentage;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InlineWorkflowTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InlineWorkflowTaskDetails.java
new file mode 100644
index 0000000000000..f4da97cf59cb8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InlineWorkflowTaskDetails.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents the inline workflow task details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("InlineWorkflowTaskDetails")
+public class InlineWorkflowTaskDetails extends GroupTaskDetails {
+ /**
+ * The list of child workflow ids.
+ */
+ @JsonProperty(value = "workflowIds")
+ private List workflowIds;
+
+ /**
+ * Get the list of child workflow ids.
+ *
+ * @return the workflowIds value
+ */
+ public List workflowIds() {
+ return this.workflowIds;
+ }
+
+ /**
+ * Set the list of child workflow ids.
+ *
+ * @param workflowIds the workflowIds value to set
+ * @return the InlineWorkflowTaskDetails object itself.
+ */
+ public InlineWorkflowTaskDetails withWorkflowIds(List workflowIds) {
+ this.workflowIds = workflowIds;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InputEndpoint.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InputEndpoint.java
new file mode 100644
index 0000000000000..c4c84af433e78
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/InputEndpoint.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure VM input endpoint details.
+ */
+public class InputEndpoint {
+ /**
+ * The input endpoint name.
+ */
+ @JsonProperty(value = "endpointName")
+ private String endpointName;
+
+ /**
+ * The input endpoint private port.
+ */
+ @JsonProperty(value = "privatePort")
+ private Integer privatePort;
+
+ /**
+ * The input endpoint public port.
+ */
+ @JsonProperty(value = "publicPort")
+ private Integer publicPort;
+
+ /**
+ * The input endpoint protocol.
+ */
+ @JsonProperty(value = "protocol")
+ private String protocol;
+
+ /**
+ * Get the input endpoint name.
+ *
+ * @return the endpointName value
+ */
+ public String endpointName() {
+ return this.endpointName;
+ }
+
+ /**
+ * Set the input endpoint name.
+ *
+ * @param endpointName the endpointName value to set
+ * @return the InputEndpoint object itself.
+ */
+ public InputEndpoint withEndpointName(String endpointName) {
+ this.endpointName = endpointName;
+ return this;
+ }
+
+ /**
+ * Get the input endpoint private port.
+ *
+ * @return the privatePort value
+ */
+ public Integer privatePort() {
+ return this.privatePort;
+ }
+
+ /**
+ * Set the input endpoint private port.
+ *
+ * @param privatePort the privatePort value to set
+ * @return the InputEndpoint object itself.
+ */
+ public InputEndpoint withPrivatePort(Integer privatePort) {
+ this.privatePort = privatePort;
+ return this;
+ }
+
+ /**
+ * Get the input endpoint public port.
+ *
+ * @return the publicPort value
+ */
+ public Integer publicPort() {
+ return this.publicPort;
+ }
+
+ /**
+ * Set the input endpoint public port.
+ *
+ * @param publicPort the publicPort value to set
+ * @return the InputEndpoint object itself.
+ */
+ public InputEndpoint withPublicPort(Integer publicPort) {
+ this.publicPort = publicPort;
+ return this;
+ }
+
+ /**
+ * Get the input endpoint protocol.
+ *
+ * @return the protocol value
+ */
+ public String protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set the input endpoint protocol.
+ *
+ * @param protocol the protocol value to set
+ * @return the InputEndpoint object itself.
+ */
+ public InputEndpoint withProtocol(String protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Job.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Job.java
new file mode 100644
index 0000000000000..8c466e243ed0a
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Job.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.JobInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing Job.
+ */
+public interface Job extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ String endTime();
+
+ /**
+ * @return the error value.
+ */
+ ARMException error();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ JobProperties properties();
+
+ /**
+ * @return the startTime value.
+ */
+ String startTime();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobDetails.java
new file mode 100644
index 0000000000000..a62243ba755c8
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobDetails.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Job details based on specific job type.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("JobDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AsrJobDetails", value = AsrJobDetails.class),
+ @JsonSubTypes.Type(name = "TestFailoverJobDetails", value = TestFailoverJobDetails.class),
+ @JsonSubTypes.Type(name = "FailoverJobDetails", value = FailoverJobDetails.class),
+ @JsonSubTypes.Type(name = "ExportJobDetails", value = ExportJobDetails.class),
+ @JsonSubTypes.Type(name = "SwitchProtectionJobDetails", value = SwitchProtectionJobDetails.class)
+})
+public class JobDetails {
+ /**
+ * The affected object properties like source server, source cloud, target
+ * server, target cloud etc. based on the workflow object details.
+ */
+ @JsonProperty(value = "affectedObjectDetails")
+ private Map affectedObjectDetails;
+
+ /**
+ * Get the affected object properties like source server, source cloud, target server, target cloud etc. based on the workflow object details.
+ *
+ * @return the affectedObjectDetails value
+ */
+ public Map affectedObjectDetails() {
+ return this.affectedObjectDetails;
+ }
+
+ /**
+ * Set the affected object properties like source server, source cloud, target server, target cloud etc. based on the workflow object details.
+ *
+ * @param affectedObjectDetails the affectedObjectDetails value to set
+ * @return the JobDetails object itself.
+ */
+ public JobDetails withAffectedObjectDetails(Map affectedObjectDetails) {
+ this.affectedObjectDetails = affectedObjectDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobEntity.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobEntity.java
new file mode 100644
index 0000000000000..0b89c67e9161b
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobEntity.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This class contains the minimal job details required to navigate to the
+ * desired drill down.
+ */
+public class JobEntity {
+ /**
+ * The job id.
+ */
+ @JsonProperty(value = "jobId")
+ private String jobId;
+
+ /**
+ * The job display name.
+ */
+ @JsonProperty(value = "jobFriendlyName")
+ private String jobFriendlyName;
+
+ /**
+ * The object id.
+ */
+ @JsonProperty(value = "targetObjectId")
+ private String targetObjectId;
+
+ /**
+ * The object name.
+ */
+ @JsonProperty(value = "targetObjectName")
+ private String targetObjectName;
+
+ /**
+ * The workflow affected object type.
+ */
+ @JsonProperty(value = "targetInstanceType")
+ private String targetInstanceType;
+
+ /**
+ * The job name. Enum type ScenarioName.
+ */
+ @JsonProperty(value = "jobScenarioName")
+ private String jobScenarioName;
+
+ /**
+ * Get the job id.
+ *
+ * @return the jobId value
+ */
+ public String jobId() {
+ return this.jobId;
+ }
+
+ /**
+ * Set the job id.
+ *
+ * @param jobId the jobId value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withJobId(String jobId) {
+ this.jobId = jobId;
+ return this;
+ }
+
+ /**
+ * Get the job display name.
+ *
+ * @return the jobFriendlyName value
+ */
+ public String jobFriendlyName() {
+ return this.jobFriendlyName;
+ }
+
+ /**
+ * Set the job display name.
+ *
+ * @param jobFriendlyName the jobFriendlyName value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withJobFriendlyName(String jobFriendlyName) {
+ this.jobFriendlyName = jobFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the object id.
+ *
+ * @return the targetObjectId value
+ */
+ public String targetObjectId() {
+ return this.targetObjectId;
+ }
+
+ /**
+ * Set the object id.
+ *
+ * @param targetObjectId the targetObjectId value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withTargetObjectId(String targetObjectId) {
+ this.targetObjectId = targetObjectId;
+ return this;
+ }
+
+ /**
+ * Get the object name.
+ *
+ * @return the targetObjectName value
+ */
+ public String targetObjectName() {
+ return this.targetObjectName;
+ }
+
+ /**
+ * Set the object name.
+ *
+ * @param targetObjectName the targetObjectName value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withTargetObjectName(String targetObjectName) {
+ this.targetObjectName = targetObjectName;
+ return this;
+ }
+
+ /**
+ * Get the workflow affected object type.
+ *
+ * @return the targetInstanceType value
+ */
+ public String targetInstanceType() {
+ return this.targetInstanceType;
+ }
+
+ /**
+ * Set the workflow affected object type.
+ *
+ * @param targetInstanceType the targetInstanceType value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withTargetInstanceType(String targetInstanceType) {
+ this.targetInstanceType = targetInstanceType;
+ return this;
+ }
+
+ /**
+ * Get the job name. Enum type ScenarioName.
+ *
+ * @return the jobScenarioName value
+ */
+ public String jobScenarioName() {
+ return this.jobScenarioName;
+ }
+
+ /**
+ * Set the job name. Enum type ScenarioName.
+ *
+ * @param jobScenarioName the jobScenarioName value to set
+ * @return the JobEntity object itself.
+ */
+ public JobEntity withJobScenarioName(String jobScenarioName) {
+ this.jobScenarioName = jobScenarioName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobErrorDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobErrorDetails.java
new file mode 100644
index 0000000000000..3e9870af03898
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobErrorDetails.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This class contains the error details per object.
+ */
+public class JobErrorDetails {
+ /**
+ * The Service error details.
+ */
+ @JsonProperty(value = "serviceErrorDetails")
+ private ServiceError serviceErrorDetails;
+
+ /**
+ * The Provider error details.
+ */
+ @JsonProperty(value = "providerErrorDetails")
+ private ProviderError providerErrorDetails;
+
+ /**
+ * Error level of error.
+ */
+ @JsonProperty(value = "errorLevel")
+ private String errorLevel;
+
+ /**
+ * The creation time of job error.
+ */
+ @JsonProperty(value = "creationTime")
+ private DateTime creationTime;
+
+ /**
+ * The Id of the task.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * Get the Service error details.
+ *
+ * @return the serviceErrorDetails value
+ */
+ public ServiceError serviceErrorDetails() {
+ return this.serviceErrorDetails;
+ }
+
+ /**
+ * Set the Service error details.
+ *
+ * @param serviceErrorDetails the serviceErrorDetails value to set
+ * @return the JobErrorDetails object itself.
+ */
+ public JobErrorDetails withServiceErrorDetails(ServiceError serviceErrorDetails) {
+ this.serviceErrorDetails = serviceErrorDetails;
+ return this;
+ }
+
+ /**
+ * Get the Provider error details.
+ *
+ * @return the providerErrorDetails value
+ */
+ public ProviderError providerErrorDetails() {
+ return this.providerErrorDetails;
+ }
+
+ /**
+ * Set the Provider error details.
+ *
+ * @param providerErrorDetails the providerErrorDetails value to set
+ * @return the JobErrorDetails object itself.
+ */
+ public JobErrorDetails withProviderErrorDetails(ProviderError providerErrorDetails) {
+ this.providerErrorDetails = providerErrorDetails;
+ return this;
+ }
+
+ /**
+ * Get error level of error.
+ *
+ * @return the errorLevel value
+ */
+ public String errorLevel() {
+ return this.errorLevel;
+ }
+
+ /**
+ * Set error level of error.
+ *
+ * @param errorLevel the errorLevel value to set
+ * @return the JobErrorDetails object itself.
+ */
+ public JobErrorDetails withErrorLevel(String errorLevel) {
+ this.errorLevel = errorLevel;
+ return this;
+ }
+
+ /**
+ * Get the creation time of job error.
+ *
+ * @return the creationTime value
+ */
+ public DateTime creationTime() {
+ return this.creationTime;
+ }
+
+ /**
+ * Set the creation time of job error.
+ *
+ * @param creationTime the creationTime value to set
+ * @return the JobErrorDetails object itself.
+ */
+ public JobErrorDetails withCreationTime(DateTime creationTime) {
+ this.creationTime = creationTime;
+ return this;
+ }
+
+ /**
+ * Get the Id of the task.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the Id of the task.
+ *
+ * @param taskId the taskId value to set
+ * @return the JobErrorDetails object itself.
+ */
+ public JobErrorDetails withTaskId(String taskId) {
+ this.taskId = taskId;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobProperties.java
new file mode 100644
index 0000000000000..e22d32c8830e3
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobProperties.java
@@ -0,0 +1,387 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Job custom data details.
+ */
+public class JobProperties {
+ /**
+ * The activity id.
+ */
+ @JsonProperty(value = "activityId")
+ private String activityId;
+
+ /**
+ * The ScenarioName.
+ */
+ @JsonProperty(value = "scenarioName")
+ private String scenarioName;
+
+ /**
+ * The DisplayName.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The status of the Job. It is one of these values - NotStarted,
+ * InProgress, Succeeded, Failed, Cancelled, Suspended or Other.
+ */
+ @JsonProperty(value = "state")
+ private String state;
+
+ /**
+ * The description of the state of the Job. For e.g. - For Succeeded state,
+ * description can be Completed, PartiallySucceeded,
+ * CompletedWithInformation or Skipped.
+ */
+ @JsonProperty(value = "stateDescription")
+ private String stateDescription;
+
+ /**
+ * The tasks.
+ */
+ @JsonProperty(value = "tasks")
+ private List tasks;
+
+ /**
+ * The errors.
+ */
+ @JsonProperty(value = "errors")
+ private List errors;
+
+ /**
+ * The start time.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * The end time.
+ */
+ @JsonProperty(value = "endTime")
+ private DateTime endTime;
+
+ /**
+ * The Allowed action the job.
+ */
+ @JsonProperty(value = "allowedActions")
+ private List allowedActions;
+
+ /**
+ * The affected Object Id.
+ */
+ @JsonProperty(value = "targetObjectId")
+ private String targetObjectId;
+
+ /**
+ * The name of the affected object.
+ */
+ @JsonProperty(value = "targetObjectName")
+ private String targetObjectName;
+
+ /**
+ * The type of the affected object which is of
+ * {Microsoft.Azure.SiteRecovery.V2015_11_10.AffectedObjectType} class.
+ */
+ @JsonProperty(value = "targetInstanceType")
+ private String targetInstanceType;
+
+ /**
+ * The custom job details like test failover job details.
+ */
+ @JsonProperty(value = "customDetails")
+ private JobDetails customDetails;
+
+ /**
+ * Get the activity id.
+ *
+ * @return the activityId value
+ */
+ public String activityId() {
+ return this.activityId;
+ }
+
+ /**
+ * Set the activity id.
+ *
+ * @param activityId the activityId value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withActivityId(String activityId) {
+ this.activityId = activityId;
+ return this;
+ }
+
+ /**
+ * Get the ScenarioName.
+ *
+ * @return the scenarioName value
+ */
+ public String scenarioName() {
+ return this.scenarioName;
+ }
+
+ /**
+ * Set the ScenarioName.
+ *
+ * @param scenarioName the scenarioName value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withScenarioName(String scenarioName) {
+ this.scenarioName = scenarioName;
+ return this;
+ }
+
+ /**
+ * Get the DisplayName.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the DisplayName.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the status of the Job. It is one of these values - NotStarted, InProgress, Succeeded, Failed, Cancelled, Suspended or Other.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the status of the Job. It is one of these values - NotStarted, InProgress, Succeeded, Failed, Cancelled, Suspended or Other.
+ *
+ * @param state the state value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the description of the state of the Job. For e.g. - For Succeeded state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped.
+ *
+ * @return the stateDescription value
+ */
+ public String stateDescription() {
+ return this.stateDescription;
+ }
+
+ /**
+ * Set the description of the state of the Job. For e.g. - For Succeeded state, description can be Completed, PartiallySucceeded, CompletedWithInformation or Skipped.
+ *
+ * @param stateDescription the stateDescription value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withStateDescription(String stateDescription) {
+ this.stateDescription = stateDescription;
+ return this;
+ }
+
+ /**
+ * Get the tasks.
+ *
+ * @return the tasks value
+ */
+ public List tasks() {
+ return this.tasks;
+ }
+
+ /**
+ * Set the tasks.
+ *
+ * @param tasks the tasks value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withTasks(List tasks) {
+ this.tasks = tasks;
+ return this;
+ }
+
+ /**
+ * Get the errors.
+ *
+ * @return the errors value
+ */
+ public List errors() {
+ return this.errors;
+ }
+
+ /**
+ * Set the errors.
+ *
+ * @param errors the errors value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withErrors(List errors) {
+ this.errors = errors;
+ return this;
+ }
+
+ /**
+ * Get the start time.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the start time.
+ *
+ * @param startTime the startTime value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get the end time.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set the end time.
+ *
+ * @param endTime the endTime value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the Allowed action the job.
+ *
+ * @return the allowedActions value
+ */
+ public List allowedActions() {
+ return this.allowedActions;
+ }
+
+ /**
+ * Set the Allowed action the job.
+ *
+ * @param allowedActions the allowedActions value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withAllowedActions(List allowedActions) {
+ this.allowedActions = allowedActions;
+ return this;
+ }
+
+ /**
+ * Get the affected Object Id.
+ *
+ * @return the targetObjectId value
+ */
+ public String targetObjectId() {
+ return this.targetObjectId;
+ }
+
+ /**
+ * Set the affected Object Id.
+ *
+ * @param targetObjectId the targetObjectId value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withTargetObjectId(String targetObjectId) {
+ this.targetObjectId = targetObjectId;
+ return this;
+ }
+
+ /**
+ * Get the name of the affected object.
+ *
+ * @return the targetObjectName value
+ */
+ public String targetObjectName() {
+ return this.targetObjectName;
+ }
+
+ /**
+ * Set the name of the affected object.
+ *
+ * @param targetObjectName the targetObjectName value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withTargetObjectName(String targetObjectName) {
+ this.targetObjectName = targetObjectName;
+ return this;
+ }
+
+ /**
+ * Get the type of the affected object which is of {Microsoft.Azure.SiteRecovery.V2015_11_10.AffectedObjectType} class.
+ *
+ * @return the targetInstanceType value
+ */
+ public String targetInstanceType() {
+ return this.targetInstanceType;
+ }
+
+ /**
+ * Set the type of the affected object which is of {Microsoft.Azure.SiteRecovery.V2015_11_10.AffectedObjectType} class.
+ *
+ * @param targetInstanceType the targetInstanceType value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withTargetInstanceType(String targetInstanceType) {
+ this.targetInstanceType = targetInstanceType;
+ return this;
+ }
+
+ /**
+ * Get the custom job details like test failover job details.
+ *
+ * @return the customDetails value
+ */
+ public JobDetails customDetails() {
+ return this.customDetails;
+ }
+
+ /**
+ * Set the custom job details like test failover job details.
+ *
+ * @param customDetails the customDetails value to set
+ * @return the JobProperties object itself.
+ */
+ public JobProperties withCustomDetails(JobDetails customDetails) {
+ this.customDetails = customDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobQueryParameter.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobQueryParameter.java
new file mode 100644
index 0000000000000..4035e6ce04db3
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobQueryParameter.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Query parameter to enumerate jobs.
+ */
+public class JobQueryParameter {
+ /**
+ * Date time to get jobs from.
+ */
+ @JsonProperty(value = "startTime")
+ private String startTime;
+
+ /**
+ * Date time to get jobs up to.
+ */
+ @JsonProperty(value = "endTime")
+ private String endTime;
+
+ /**
+ * The Id of the fabric to search jobs under.
+ */
+ @JsonProperty(value = "fabricId")
+ private String fabricId;
+
+ /**
+ * The type of objects.
+ */
+ @JsonProperty(value = "affectedObjectTypes")
+ private List affectedObjectTypes;
+
+ /**
+ * The states of the job to be filtered can be in.
+ */
+ @JsonProperty(value = "jobStatus")
+ private List jobStatus;
+
+ /**
+ * Get date time to get jobs from.
+ *
+ * @return the startTime value
+ */
+ public String startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set date time to get jobs from.
+ *
+ * @param startTime the startTime value to set
+ * @return the JobQueryParameter object itself.
+ */
+ public JobQueryParameter withStartTime(String startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get date time to get jobs up to.
+ *
+ * @return the endTime value
+ */
+ public String endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set date time to get jobs up to.
+ *
+ * @param endTime the endTime value to set
+ * @return the JobQueryParameter object itself.
+ */
+ public JobQueryParameter withEndTime(String endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the Id of the fabric to search jobs under.
+ *
+ * @return the fabricId value
+ */
+ public String fabricId() {
+ return this.fabricId;
+ }
+
+ /**
+ * Set the Id of the fabric to search jobs under.
+ *
+ * @param fabricId the fabricId value to set
+ * @return the JobQueryParameter object itself.
+ */
+ public JobQueryParameter withFabricId(String fabricId) {
+ this.fabricId = fabricId;
+ return this;
+ }
+
+ /**
+ * Get the type of objects.
+ *
+ * @return the affectedObjectTypes value
+ */
+ public List affectedObjectTypes() {
+ return this.affectedObjectTypes;
+ }
+
+ /**
+ * Set the type of objects.
+ *
+ * @param affectedObjectTypes the affectedObjectTypes value to set
+ * @return the JobQueryParameter object itself.
+ */
+ public JobQueryParameter withAffectedObjectTypes(List affectedObjectTypes) {
+ this.affectedObjectTypes = affectedObjectTypes;
+ return this;
+ }
+
+ /**
+ * Get the states of the job to be filtered can be in.
+ *
+ * @return the jobStatus value
+ */
+ public List jobStatus() {
+ return this.jobStatus;
+ }
+
+ /**
+ * Set the states of the job to be filtered can be in.
+ *
+ * @param jobStatus the jobStatus value to set
+ * @return the JobQueryParameter object itself.
+ */
+ public JobQueryParameter withJobStatus(List jobStatus) {
+ this.jobStatus = jobStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobStatusEventDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobStatusEventDetails.java
new file mode 100644
index 0000000000000..e64511de38ed2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobStatusEventDetails.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Model class for event details of a job status event.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("JobStatus")
+public class JobStatusEventDetails extends EventSpecificDetails {
+ /**
+ * Job arm id for the event.
+ */
+ @JsonProperty(value = "jobId")
+ private String jobId;
+
+ /**
+ * JobName for the Event.
+ */
+ @JsonProperty(value = "jobFriendlyName")
+ private String jobFriendlyName;
+
+ /**
+ * JobStatus for the Event.
+ */
+ @JsonProperty(value = "jobStatus")
+ private String jobStatus;
+
+ /**
+ * AffectedObjectType for the event.
+ */
+ @JsonProperty(value = "affectedObjectType")
+ private String affectedObjectType;
+
+ /**
+ * Get job arm id for the event.
+ *
+ * @return the jobId value
+ */
+ public String jobId() {
+ return this.jobId;
+ }
+
+ /**
+ * Set job arm id for the event.
+ *
+ * @param jobId the jobId value to set
+ * @return the JobStatusEventDetails object itself.
+ */
+ public JobStatusEventDetails withJobId(String jobId) {
+ this.jobId = jobId;
+ return this;
+ }
+
+ /**
+ * Get jobName for the Event.
+ *
+ * @return the jobFriendlyName value
+ */
+ public String jobFriendlyName() {
+ return this.jobFriendlyName;
+ }
+
+ /**
+ * Set jobName for the Event.
+ *
+ * @param jobFriendlyName the jobFriendlyName value to set
+ * @return the JobStatusEventDetails object itself.
+ */
+ public JobStatusEventDetails withJobFriendlyName(String jobFriendlyName) {
+ this.jobFriendlyName = jobFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get jobStatus for the Event.
+ *
+ * @return the jobStatus value
+ */
+ public String jobStatus() {
+ return this.jobStatus;
+ }
+
+ /**
+ * Set jobStatus for the Event.
+ *
+ * @param jobStatus the jobStatus value to set
+ * @return the JobStatusEventDetails object itself.
+ */
+ public JobStatusEventDetails withJobStatus(String jobStatus) {
+ this.jobStatus = jobStatus;
+ return this;
+ }
+
+ /**
+ * Get affectedObjectType for the event.
+ *
+ * @return the affectedObjectType value
+ */
+ public String affectedObjectType() {
+ return this.affectedObjectType;
+ }
+
+ /**
+ * Set affectedObjectType for the event.
+ *
+ * @param affectedObjectType the affectedObjectType value to set
+ * @return the JobStatusEventDetails object itself.
+ */
+ public JobStatusEventDetails withAffectedObjectType(String affectedObjectType) {
+ this.affectedObjectType = affectedObjectType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobTaskDetails.java
new file mode 100644
index 0000000000000..200a4d822e527
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/JobTaskDetails.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents a task which is actually a workflow so that one can
+ * navigate to its individual drill down.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("JobTaskDetails")
+public class JobTaskDetails extends TaskTypeDetails {
+ /**
+ * The job entity.
+ */
+ @JsonProperty(value = "jobTask")
+ private JobEntity jobTask;
+
+ /**
+ * Get the job entity.
+ *
+ * @return the jobTask value
+ */
+ public JobEntity jobTask() {
+ return this.jobTask;
+ }
+
+ /**
+ * Set the job entity.
+ *
+ * @param jobTask the jobTask value to set
+ * @return the JobTaskDetails object itself.
+ */
+ public JobTaskDetails withJobTask(JobEntity jobTask) {
+ this.jobTask = jobTask;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LicenseType.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LicenseType.java
new file mode 100644
index 0000000000000..8a7fd29e93d8e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LicenseType.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for LicenseType.
+ */
+public enum LicenseType {
+ /** Enum value NotSpecified. */
+ NOT_SPECIFIED("NotSpecified"),
+
+ /** Enum value NoLicenseType. */
+ NO_LICENSE_TYPE("NoLicenseType"),
+
+ /** Enum value WindowsServer. */
+ WINDOWS_SERVER("WindowsServer");
+
+ /** The actual serialized value for a LicenseType instance. */
+ private String value;
+
+ LicenseType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a LicenseType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed LicenseType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static LicenseType fromString(String value) {
+ LicenseType[] items = LicenseType.values();
+ for (LicenseType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetwork.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetwork.java
new file mode 100644
index 0000000000000..3adaeea0d0cda
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetwork.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.LogicalNetworkInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing LogicalNetwork.
+ */
+public interface LogicalNetwork extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ LogicalNetworkProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetworkProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetworkProperties.java
new file mode 100644
index 0000000000000..32d7c1ec8af1a
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/LogicalNetworkProperties.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Logical Network Properties.
+ */
+public class LogicalNetworkProperties {
+ /**
+ * The Friendly Name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * A value indicating whether Network Virtualization is enabled for the
+ * logical network.
+ */
+ @JsonProperty(value = "networkVirtualizationStatus")
+ private String networkVirtualizationStatus;
+
+ /**
+ * A value indicating whether logical network is used as private test
+ * network by test failover.
+ */
+ @JsonProperty(value = "logicalNetworkUsage")
+ private String logicalNetworkUsage;
+
+ /**
+ * A value indicating whether logical network definitions are isolated.
+ */
+ @JsonProperty(value = "logicalNetworkDefinitionsStatus")
+ private String logicalNetworkDefinitionsStatus;
+
+ /**
+ * Get the Friendly Name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the Friendly Name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the LogicalNetworkProperties object itself.
+ */
+ public LogicalNetworkProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether Network Virtualization is enabled for the logical network.
+ *
+ * @return the networkVirtualizationStatus value
+ */
+ public String networkVirtualizationStatus() {
+ return this.networkVirtualizationStatus;
+ }
+
+ /**
+ * Set a value indicating whether Network Virtualization is enabled for the logical network.
+ *
+ * @param networkVirtualizationStatus the networkVirtualizationStatus value to set
+ * @return the LogicalNetworkProperties object itself.
+ */
+ public LogicalNetworkProperties withNetworkVirtualizationStatus(String networkVirtualizationStatus) {
+ this.networkVirtualizationStatus = networkVirtualizationStatus;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether logical network is used as private test network by test failover.
+ *
+ * @return the logicalNetworkUsage value
+ */
+ public String logicalNetworkUsage() {
+ return this.logicalNetworkUsage;
+ }
+
+ /**
+ * Set a value indicating whether logical network is used as private test network by test failover.
+ *
+ * @param logicalNetworkUsage the logicalNetworkUsage value to set
+ * @return the LogicalNetworkProperties object itself.
+ */
+ public LogicalNetworkProperties withLogicalNetworkUsage(String logicalNetworkUsage) {
+ this.logicalNetworkUsage = logicalNetworkUsage;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether logical network definitions are isolated.
+ *
+ * @return the logicalNetworkDefinitionsStatus value
+ */
+ public String logicalNetworkDefinitionsStatus() {
+ return this.logicalNetworkDefinitionsStatus;
+ }
+
+ /**
+ * Set a value indicating whether logical network definitions are isolated.
+ *
+ * @param logicalNetworkDefinitionsStatus the logicalNetworkDefinitionsStatus value to set
+ * @return the LogicalNetworkProperties object itself.
+ */
+ public LogicalNetworkProperties withLogicalNetworkDefinitionsStatus(String logicalNetworkDefinitionsStatus) {
+ this.logicalNetworkDefinitionsStatus = logicalNetworkDefinitionsStatus;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ManualActionTaskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ManualActionTaskDetails.java
new file mode 100644
index 0000000000000..a761cdc2cb40d
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ManualActionTaskDetails.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class represents the manual action task details.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("ManualActionTaskDetails")
+public class ManualActionTaskDetails extends TaskTypeDetails {
+ /**
+ * The name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The instructions.
+ */
+ @JsonProperty(value = "instructions")
+ private String instructions;
+
+ /**
+ * The observation.
+ */
+ @JsonProperty(value = "observation")
+ private String observation;
+
+ /**
+ * Get the name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name.
+ *
+ * @param name the name value to set
+ * @return the ManualActionTaskDetails object itself.
+ */
+ public ManualActionTaskDetails withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the instructions.
+ *
+ * @return the instructions value
+ */
+ public String instructions() {
+ return this.instructions;
+ }
+
+ /**
+ * Set the instructions.
+ *
+ * @param instructions the instructions value to set
+ * @return the ManualActionTaskDetails object itself.
+ */
+ public ManualActionTaskDetails withInstructions(String instructions) {
+ this.instructions = instructions;
+ return this;
+ }
+
+ /**
+ * Get the observation.
+ *
+ * @return the observation value
+ */
+ public String observation() {
+ return this.observation;
+ }
+
+ /**
+ * Set the observation.
+ *
+ * @param observation the observation value to set
+ * @return the ManualActionTaskDetails object itself.
+ */
+ public ManualActionTaskDetails withObservation(String observation) {
+ this.observation = observation;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MasterTargetServer.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MasterTargetServer.java
new file mode 100644
index 0000000000000..27fa5fa82ecb1
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MasterTargetServer.java
@@ -0,0 +1,331 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of a Master Target Server.
+ */
+public class MasterTargetServer {
+ /**
+ * The server Id.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The IP address of the server.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The server name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The OS type of the server.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The version of the scout component on the server.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * The last heartbeat received from the server.
+ */
+ @JsonProperty(value = "lastHeartbeat")
+ private DateTime lastHeartbeat;
+
+ /**
+ * Version status.
+ */
+ @JsonProperty(value = "versionStatus")
+ private String versionStatus;
+
+ /**
+ * The retention volumes of Master target Server.
+ */
+ @JsonProperty(value = "retentionVolumes")
+ private List retentionVolumes;
+
+ /**
+ * The list of data stores in the fabric.
+ */
+ @JsonProperty(value = "dataStores")
+ private List dataStores;
+
+ /**
+ * Validation errors.
+ */
+ @JsonProperty(value = "validationErrors")
+ private List validationErrors;
+
+ /**
+ * Disk count of the master target.
+ */
+ @JsonProperty(value = "diskCount")
+ private Integer diskCount;
+
+ /**
+ * OS Version of the master target.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /**
+ * Get the server Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the server Id.
+ *
+ * @param id the id value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the IP address of the server.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the IP address of the server.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the server name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the server name.
+ *
+ * @param name the name value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the OS type of the server.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type of the server.
+ *
+ * @param osType the osType value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the version of the scout component on the server.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the version of the scout component on the server.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get the last heartbeat received from the server.
+ *
+ * @return the lastHeartbeat value
+ */
+ public DateTime lastHeartbeat() {
+ return this.lastHeartbeat;
+ }
+
+ /**
+ * Set the last heartbeat received from the server.
+ *
+ * @param lastHeartbeat the lastHeartbeat value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withLastHeartbeat(DateTime lastHeartbeat) {
+ this.lastHeartbeat = lastHeartbeat;
+ return this;
+ }
+
+ /**
+ * Get version status.
+ *
+ * @return the versionStatus value
+ */
+ public String versionStatus() {
+ return this.versionStatus;
+ }
+
+ /**
+ * Set version status.
+ *
+ * @param versionStatus the versionStatus value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withVersionStatus(String versionStatus) {
+ this.versionStatus = versionStatus;
+ return this;
+ }
+
+ /**
+ * Get the retention volumes of Master target Server.
+ *
+ * @return the retentionVolumes value
+ */
+ public List retentionVolumes() {
+ return this.retentionVolumes;
+ }
+
+ /**
+ * Set the retention volumes of Master target Server.
+ *
+ * @param retentionVolumes the retentionVolumes value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withRetentionVolumes(List retentionVolumes) {
+ this.retentionVolumes = retentionVolumes;
+ return this;
+ }
+
+ /**
+ * Get the list of data stores in the fabric.
+ *
+ * @return the dataStores value
+ */
+ public List dataStores() {
+ return this.dataStores;
+ }
+
+ /**
+ * Set the list of data stores in the fabric.
+ *
+ * @param dataStores the dataStores value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withDataStores(List dataStores) {
+ this.dataStores = dataStores;
+ return this;
+ }
+
+ /**
+ * Get validation errors.
+ *
+ * @return the validationErrors value
+ */
+ public List validationErrors() {
+ return this.validationErrors;
+ }
+
+ /**
+ * Set validation errors.
+ *
+ * @param validationErrors the validationErrors value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withValidationErrors(List validationErrors) {
+ this.validationErrors = validationErrors;
+ return this;
+ }
+
+ /**
+ * Get disk count of the master target.
+ *
+ * @return the diskCount value
+ */
+ public Integer diskCount() {
+ return this.diskCount;
+ }
+
+ /**
+ * Set disk count of the master target.
+ *
+ * @param diskCount the diskCount value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withDiskCount(Integer diskCount) {
+ this.diskCount = diskCount;
+ return this;
+ }
+
+ /**
+ * Get oS Version of the master target.
+ *
+ * @return the osVersion value
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set oS Version of the master target.
+ *
+ * @param osVersion the osVersion value to set
+ * @return the MasterTargetServer object itself.
+ */
+ public MasterTargetServer withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MethodCallStatus.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MethodCallStatus.java
new file mode 100644
index 0000000000000..b53aad6593436
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MethodCallStatus.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Reports method status where exception was raised.
+ */
+public class MethodCallStatus {
+ /**
+ * Gets a value indicating whether called method was virtual.
+ */
+ @JsonProperty(value = "isVirtual")
+ private String isVirtual;
+
+ /**
+ * Gets parameter list passed to method.
+ */
+ @JsonProperty(value = "parameters")
+ private List parameters;
+
+ /**
+ * Gets a value indicating whether method container generic params.
+ */
+ @JsonProperty(value = "containsGenericParameters")
+ private String containsGenericParameters;
+
+ /**
+ * Get gets a value indicating whether called method was virtual.
+ *
+ * @return the isVirtual value
+ */
+ public String isVirtual() {
+ return this.isVirtual;
+ }
+
+ /**
+ * Set gets a value indicating whether called method was virtual.
+ *
+ * @param isVirtual the isVirtual value to set
+ * @return the MethodCallStatus object itself.
+ */
+ public MethodCallStatus withIsVirtual(String isVirtual) {
+ this.isVirtual = isVirtual;
+ return this;
+ }
+
+ /**
+ * Get gets parameter list passed to method.
+ *
+ * @return the parameters value
+ */
+ public List parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set gets parameter list passed to method.
+ *
+ * @param parameters the parameters value to set
+ * @return the MethodCallStatus object itself.
+ */
+ public MethodCallStatus withParameters(List parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get gets a value indicating whether method container generic params.
+ *
+ * @return the containsGenericParameters value
+ */
+ public String containsGenericParameters() {
+ return this.containsGenericParameters;
+ }
+
+ /**
+ * Set gets a value indicating whether method container generic params.
+ *
+ * @param containsGenericParameters the containsGenericParameters value to set
+ * @return the MethodCallStatus object itself.
+ */
+ public MethodCallStatus withContainsGenericParameters(String containsGenericParameters) {
+ this.containsGenericParameters = containsGenericParameters;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MobilityServiceUpdate.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MobilityServiceUpdate.java
new file mode 100644
index 0000000000000..12ae5faa13461
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MobilityServiceUpdate.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Mobility Service update details.
+ */
+public class MobilityServiceUpdate {
+ /**
+ * The version of the latest update.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * The reboot status of the update - whether it is required or not.
+ */
+ @JsonProperty(value = "rebootStatus")
+ private String rebootStatus;
+
+ /**
+ * The OS type.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * Get the version of the latest update.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version of the latest update.
+ *
+ * @param version the version value to set
+ * @return the MobilityServiceUpdate object itself.
+ */
+ public MobilityServiceUpdate withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get the reboot status of the update - whether it is required or not.
+ *
+ * @return the rebootStatus value
+ */
+ public String rebootStatus() {
+ return this.rebootStatus;
+ }
+
+ /**
+ * Set the reboot status of the update - whether it is required or not.
+ *
+ * @param rebootStatus the rebootStatus value to set
+ * @return the MobilityServiceUpdate object itself.
+ */
+ public MobilityServiceUpdate withRebootStatus(String rebootStatus) {
+ this.rebootStatus = rebootStatus;
+ return this;
+ }
+
+ /**
+ * Get the OS type.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type.
+ *
+ * @param osType the osType value to set
+ * @return the MobilityServiceUpdate object itself.
+ */
+ public MobilityServiceUpdate withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MultiVmSyncStatus.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MultiVmSyncStatus.java
new file mode 100644
index 0000000000000..a15dd2ba1dddb
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/MultiVmSyncStatus.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for MultiVmSyncStatus.
+ */
+public enum MultiVmSyncStatus {
+ /** Enum value Enabled. */
+ ENABLED("Enabled"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled");
+
+ /** The actual serialized value for a MultiVmSyncStatus instance. */
+ private String value;
+
+ MultiVmSyncStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a MultiVmSyncStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed MultiVmSyncStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static MultiVmSyncStatus fromString(String value) {
+ MultiVmSyncStatus[] items = MultiVmSyncStatus.values();
+ for (MultiVmSyncStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Network.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Network.java
new file mode 100644
index 0000000000000..66e86b754e8b9
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Network.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.NetworkInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing Network.
+ */
+public interface Network extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ NetworkProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMapping.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMapping.java
new file mode 100644
index 0000000000000..ad406682baf61
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMapping.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.NetworkMappingInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing NetworkMapping.
+ */
+public interface NetworkMapping extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ NetworkMappingProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the NetworkMapping definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVault, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of NetworkMapping definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a NetworkMapping definition.
+ */
+ interface Blank extends WithVault {
+ }
+
+ /**
+ * The stage of the networkmapping definition allowing to specify Vault.
+ */
+ interface WithVault {
+ /**
+ * Specifies fabricName, networkName.
+ * @param fabricName Primary fabric name
+ * @param networkName Primary network name
+ * @return the next definition stage
+ */
+ WithProperties withExistingVault(String fabricName, String networkName);
+ }
+
+ /**
+ * The stage of the networkmapping definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Input properties for creating network mapping
+ * @return the next definition stage
+ */
+ WithCreate withProperties(CreateNetworkMappingInputProperties properties);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a NetworkMapping update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of NetworkMapping update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the networkmapping update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The input properties needed to update network mapping
+ * @return the next update stage
+ */
+ Update withProperties(UpdateNetworkMappingInputProperties properties);
+ }
+
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingFabricSpecificSettings.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingFabricSpecificSettings.java
new file mode 100644
index 0000000000000..e3892fc4d9c54
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingFabricSpecificSettings.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Network Mapping fabric specific settings.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("NetworkMappingFabricSpecificSettings")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureToAzure", value = AzureToAzureNetworkMappingSettings.class),
+ @JsonSubTypes.Type(name = "VmmToAzure", value = VmmToAzureNetworkMappingSettings.class),
+ @JsonSubTypes.Type(name = "VmmToVmm", value = VmmToVmmNetworkMappingSettings.class)
+})
+public class NetworkMappingFabricSpecificSettings {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingProperties.java
new file mode 100644
index 0000000000000..84ef8b0e27baf
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkMappingProperties.java
@@ -0,0 +1,251 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Network Mapping Properties.
+ */
+public class NetworkMappingProperties {
+ /**
+ * The pairing state for network mapping.
+ */
+ @JsonProperty(value = "state")
+ private String state;
+
+ /**
+ * The primary network friendly name.
+ */
+ @JsonProperty(value = "primaryNetworkFriendlyName")
+ private String primaryNetworkFriendlyName;
+
+ /**
+ * The primary network id for network mapping.
+ */
+ @JsonProperty(value = "primaryNetworkId")
+ private String primaryNetworkId;
+
+ /**
+ * The primary fabric friendly name.
+ */
+ @JsonProperty(value = "primaryFabricFriendlyName")
+ private String primaryFabricFriendlyName;
+
+ /**
+ * The recovery network friendly name.
+ */
+ @JsonProperty(value = "recoveryNetworkFriendlyName")
+ private String recoveryNetworkFriendlyName;
+
+ /**
+ * The recovery network id for network mapping.
+ */
+ @JsonProperty(value = "recoveryNetworkId")
+ private String recoveryNetworkId;
+
+ /**
+ * The recovery fabric ARM id.
+ */
+ @JsonProperty(value = "recoveryFabricArmId")
+ private String recoveryFabricArmId;
+
+ /**
+ * The recovery fabric friendly name.
+ */
+ @JsonProperty(value = "recoveryFabricFriendlyName")
+ private String recoveryFabricFriendlyName;
+
+ /**
+ * The fabric specific settings.
+ */
+ @JsonProperty(value = "fabricSpecificSettings")
+ private NetworkMappingFabricSpecificSettings fabricSpecificSettings;
+
+ /**
+ * Get the pairing state for network mapping.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the pairing state for network mapping.
+ *
+ * @param state the state value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the primary network friendly name.
+ *
+ * @return the primaryNetworkFriendlyName value
+ */
+ public String primaryNetworkFriendlyName() {
+ return this.primaryNetworkFriendlyName;
+ }
+
+ /**
+ * Set the primary network friendly name.
+ *
+ * @param primaryNetworkFriendlyName the primaryNetworkFriendlyName value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withPrimaryNetworkFriendlyName(String primaryNetworkFriendlyName) {
+ this.primaryNetworkFriendlyName = primaryNetworkFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the primary network id for network mapping.
+ *
+ * @return the primaryNetworkId value
+ */
+ public String primaryNetworkId() {
+ return this.primaryNetworkId;
+ }
+
+ /**
+ * Set the primary network id for network mapping.
+ *
+ * @param primaryNetworkId the primaryNetworkId value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withPrimaryNetworkId(String primaryNetworkId) {
+ this.primaryNetworkId = primaryNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the primary fabric friendly name.
+ *
+ * @return the primaryFabricFriendlyName value
+ */
+ public String primaryFabricFriendlyName() {
+ return this.primaryFabricFriendlyName;
+ }
+
+ /**
+ * Set the primary fabric friendly name.
+ *
+ * @param primaryFabricFriendlyName the primaryFabricFriendlyName value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withPrimaryFabricFriendlyName(String primaryFabricFriendlyName) {
+ this.primaryFabricFriendlyName = primaryFabricFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the recovery network friendly name.
+ *
+ * @return the recoveryNetworkFriendlyName value
+ */
+ public String recoveryNetworkFriendlyName() {
+ return this.recoveryNetworkFriendlyName;
+ }
+
+ /**
+ * Set the recovery network friendly name.
+ *
+ * @param recoveryNetworkFriendlyName the recoveryNetworkFriendlyName value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withRecoveryNetworkFriendlyName(String recoveryNetworkFriendlyName) {
+ this.recoveryNetworkFriendlyName = recoveryNetworkFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the recovery network id for network mapping.
+ *
+ * @return the recoveryNetworkId value
+ */
+ public String recoveryNetworkId() {
+ return this.recoveryNetworkId;
+ }
+
+ /**
+ * Set the recovery network id for network mapping.
+ *
+ * @param recoveryNetworkId the recoveryNetworkId value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withRecoveryNetworkId(String recoveryNetworkId) {
+ this.recoveryNetworkId = recoveryNetworkId;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric ARM id.
+ *
+ * @return the recoveryFabricArmId value
+ */
+ public String recoveryFabricArmId() {
+ return this.recoveryFabricArmId;
+ }
+
+ /**
+ * Set the recovery fabric ARM id.
+ *
+ * @param recoveryFabricArmId the recoveryFabricArmId value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withRecoveryFabricArmId(String recoveryFabricArmId) {
+ this.recoveryFabricArmId = recoveryFabricArmId;
+ return this;
+ }
+
+ /**
+ * Get the recovery fabric friendly name.
+ *
+ * @return the recoveryFabricFriendlyName value
+ */
+ public String recoveryFabricFriendlyName() {
+ return this.recoveryFabricFriendlyName;
+ }
+
+ /**
+ * Set the recovery fabric friendly name.
+ *
+ * @param recoveryFabricFriendlyName the recoveryFabricFriendlyName value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withRecoveryFabricFriendlyName(String recoveryFabricFriendlyName) {
+ this.recoveryFabricFriendlyName = recoveryFabricFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get the fabric specific settings.
+ *
+ * @return the fabricSpecificSettings value
+ */
+ public NetworkMappingFabricSpecificSettings fabricSpecificSettings() {
+ return this.fabricSpecificSettings;
+ }
+
+ /**
+ * Set the fabric specific settings.
+ *
+ * @param fabricSpecificSettings the fabricSpecificSettings value to set
+ * @return the NetworkMappingProperties object itself.
+ */
+ public NetworkMappingProperties withFabricSpecificSettings(NetworkMappingFabricSpecificSettings fabricSpecificSettings) {
+ this.fabricSpecificSettings = fabricSpecificSettings;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkProperties.java
new file mode 100644
index 0000000000000..ade2fa5065bef
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/NetworkProperties.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Network Properties.
+ */
+public class NetworkProperties {
+ /**
+ * The Fabric Type.
+ */
+ @JsonProperty(value = "fabricType")
+ private String fabricType;
+
+ /**
+ * The List of subnets.
+ */
+ @JsonProperty(value = "subnets")
+ private List subnets;
+
+ /**
+ * The Friendly Name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The Network Type.
+ */
+ @JsonProperty(value = "networkType")
+ private String networkType;
+
+ /**
+ * Get the Fabric Type.
+ *
+ * @return the fabricType value
+ */
+ public String fabricType() {
+ return this.fabricType;
+ }
+
+ /**
+ * Set the Fabric Type.
+ *
+ * @param fabricType the fabricType value to set
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withFabricType(String fabricType) {
+ this.fabricType = fabricType;
+ return this;
+ }
+
+ /**
+ * Get the List of subnets.
+ *
+ * @return the subnets value
+ */
+ public List subnets() {
+ return this.subnets;
+ }
+
+ /**
+ * Set the List of subnets.
+ *
+ * @param subnets the subnets value to set
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withSubnets(List subnets) {
+ this.subnets = subnets;
+ return this;
+ }
+
+ /**
+ * Get the Friendly Name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the Friendly Name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the Network Type.
+ *
+ * @return the networkType value
+ */
+ public String networkType() {
+ return this.networkType;
+ }
+
+ /**
+ * Set the Network Type.
+ *
+ * @param networkType the networkType value to set
+ * @return the NetworkProperties object itself.
+ */
+ public NetworkProperties withNetworkType(String networkType) {
+ this.networkType = networkType;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDetails.java
new file mode 100644
index 0000000000000..324fdeff7775e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDetails.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Disk Details.
+ */
+public class OSDetails {
+ /**
+ * VM Disk details.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * Product type.
+ */
+ @JsonProperty(value = "productType")
+ private String productType;
+
+ /**
+ * The OSEdition.
+ */
+ @JsonProperty(value = "osEdition")
+ private String osEdition;
+
+ /**
+ * The OS Version.
+ */
+ @JsonProperty(value = "oSVersion")
+ private String oSVersion;
+
+ /**
+ * The OS Major Version.
+ */
+ @JsonProperty(value = "oSMajorVersion")
+ private String oSMajorVersion;
+
+ /**
+ * The OS Minor Version.
+ */
+ @JsonProperty(value = "oSMinorVersion")
+ private String oSMinorVersion;
+
+ /**
+ * Get vM Disk details.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set vM Disk details.
+ *
+ * @param osType the osType value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get product type.
+ *
+ * @return the productType value
+ */
+ public String productType() {
+ return this.productType;
+ }
+
+ /**
+ * Set product type.
+ *
+ * @param productType the productType value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withProductType(String productType) {
+ this.productType = productType;
+ return this;
+ }
+
+ /**
+ * Get the OSEdition.
+ *
+ * @return the osEdition value
+ */
+ public String osEdition() {
+ return this.osEdition;
+ }
+
+ /**
+ * Set the OSEdition.
+ *
+ * @param osEdition the osEdition value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withOsEdition(String osEdition) {
+ this.osEdition = osEdition;
+ return this;
+ }
+
+ /**
+ * Get the OS Version.
+ *
+ * @return the oSVersion value
+ */
+ public String oSVersion() {
+ return this.oSVersion;
+ }
+
+ /**
+ * Set the OS Version.
+ *
+ * @param oSVersion the oSVersion value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withOSVersion(String oSVersion) {
+ this.oSVersion = oSVersion;
+ return this;
+ }
+
+ /**
+ * Get the OS Major Version.
+ *
+ * @return the oSMajorVersion value
+ */
+ public String oSMajorVersion() {
+ return this.oSMajorVersion;
+ }
+
+ /**
+ * Set the OS Major Version.
+ *
+ * @param oSMajorVersion the oSMajorVersion value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withOSMajorVersion(String oSMajorVersion) {
+ this.oSMajorVersion = oSMajorVersion;
+ return this;
+ }
+
+ /**
+ * Get the OS Minor Version.
+ *
+ * @return the oSMinorVersion value
+ */
+ public String oSMinorVersion() {
+ return this.oSMinorVersion;
+ }
+
+ /**
+ * Set the OS Minor Version.
+ *
+ * @param oSMinorVersion the oSMinorVersion value to set
+ * @return the OSDetails object itself.
+ */
+ public OSDetails withOSMinorVersion(String oSMinorVersion) {
+ this.oSMinorVersion = oSMinorVersion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDiskDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDiskDetails.java
new file mode 100644
index 0000000000000..6fd90b2094f2f
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OSDiskDetails.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of the OS Disk.
+ */
+public class OSDiskDetails {
+ /**
+ * The id of the disk containing the OS.
+ */
+ @JsonProperty(value = "osVhdId")
+ private String osVhdId;
+
+ /**
+ * The type of the OS on the VM.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The OS disk VHD name.
+ */
+ @JsonProperty(value = "vhdName")
+ private String vhdName;
+
+ /**
+ * Get the id of the disk containing the OS.
+ *
+ * @return the osVhdId value
+ */
+ public String osVhdId() {
+ return this.osVhdId;
+ }
+
+ /**
+ * Set the id of the disk containing the OS.
+ *
+ * @param osVhdId the osVhdId value to set
+ * @return the OSDiskDetails object itself.
+ */
+ public OSDiskDetails withOsVhdId(String osVhdId) {
+ this.osVhdId = osVhdId;
+ return this;
+ }
+
+ /**
+ * Get the type of the OS on the VM.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the type of the OS on the VM.
+ *
+ * @param osType the osType value to set
+ * @return the OSDiskDetails object itself.
+ */
+ public OSDiskDetails withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the OS disk VHD name.
+ *
+ * @return the vhdName value
+ */
+ public String vhdName() {
+ return this.vhdName;
+ }
+
+ /**
+ * Set the OS disk VHD name.
+ *
+ * @param vhdName the vhdName value to set
+ * @return the OSDiskDetails object itself.
+ */
+ public OSDiskDetails withVhdName(String vhdName) {
+ this.vhdName = vhdName;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Operations.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Operations.java
new file mode 100644
index 0000000000000..0cb3bfbcc5174
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Operations.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends SupportsListing, HasInner {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OperationsDiscovery.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OperationsDiscovery.java
new file mode 100644
index 0000000000000..7222e36abf698
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/OperationsDiscovery.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.OperationsDiscoveryInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing OperationsDiscovery.
+ */
+public interface OperationsDiscovery extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ Display display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ Object properties();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInput.java
new file mode 100644
index 0000000000000..dc399d1c8dc2e
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInput.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input definition for planned failover.
+ */
+public class PlannedFailoverInput {
+ /**
+ * Planned failover input properties.
+ */
+ @JsonProperty(value = "properties")
+ private PlannedFailoverInputProperties properties;
+
+ /**
+ * Get planned failover input properties.
+ *
+ * @return the properties value
+ */
+ public PlannedFailoverInputProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set planned failover input properties.
+ *
+ * @param properties the properties value to set
+ * @return the PlannedFailoverInput object itself.
+ */
+ public PlannedFailoverInput withProperties(PlannedFailoverInputProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInputProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInputProperties.java
new file mode 100644
index 0000000000000..1510063dae4b6
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PlannedFailoverInputProperties.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Input definition for planned failover input properties.
+ */
+public class PlannedFailoverInputProperties {
+ /**
+ * Failover direction.
+ */
+ @JsonProperty(value = "failoverDirection")
+ private String failoverDirection;
+
+ /**
+ * Provider specific settings.
+ */
+ @JsonProperty(value = "providerSpecificDetails")
+ private ProviderSpecificFailoverInput providerSpecificDetails;
+
+ /**
+ * Get failover direction.
+ *
+ * @return the failoverDirection value
+ */
+ public String failoverDirection() {
+ return this.failoverDirection;
+ }
+
+ /**
+ * Set failover direction.
+ *
+ * @param failoverDirection the failoverDirection value to set
+ * @return the PlannedFailoverInputProperties object itself.
+ */
+ public PlannedFailoverInputProperties withFailoverDirection(String failoverDirection) {
+ this.failoverDirection = failoverDirection;
+ return this;
+ }
+
+ /**
+ * Get provider specific settings.
+ *
+ * @return the providerSpecificDetails value
+ */
+ public ProviderSpecificFailoverInput providerSpecificDetails() {
+ return this.providerSpecificDetails;
+ }
+
+ /**
+ * Set provider specific settings.
+ *
+ * @param providerSpecificDetails the providerSpecificDetails value to set
+ * @return the PlannedFailoverInputProperties object itself.
+ */
+ public PlannedFailoverInputProperties withProviderSpecificDetails(ProviderSpecificFailoverInput providerSpecificDetails) {
+ this.providerSpecificDetails = providerSpecificDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Policy.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Policy.java
new file mode 100644
index 0000000000000..050b21b24fce2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/Policy.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.PolicyInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing Policy.
+ */
+public interface Policy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ PolicyProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Policy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithVault, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Policy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Policy definition.
+ */
+ interface Blank extends WithVault {
+ }
+
+ /**
+ * The stage of the policy definition allowing to specify Vault.
+ */
+ interface WithVault {
+ /**
+ * Specifies .
+ * @return the next definition stage
+ */
+ WithProperties withExistingVault();
+ }
+
+ /**
+ * The stage of the policy definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Policy creation properties
+ * @return the next definition stage
+ */
+ WithCreate withProperties(CreatePolicyInputProperties properties);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable {
+ }
+ }
+ /**
+ * The template for a Policy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithProperties {
+ }
+
+ /**
+ * Grouping of Policy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the policy update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The ReplicationProviderSettings
+ * @return the next update stage
+ */
+ Update withProperties(UpdatePolicyInputProperties properties);
+ }
+
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProperties.java
new file mode 100644
index 0000000000000..c9addf7b9f6c2
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProperties.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Protection profile custom data details.
+ */
+public class PolicyProperties {
+ /**
+ * The FriendlyName.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The ReplicationChannelSetting.
+ */
+ @JsonProperty(value = "providerSpecificDetails")
+ private PolicyProviderSpecificDetails providerSpecificDetails;
+
+ /**
+ * Get the FriendlyName.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the FriendlyName.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the PolicyProperties object itself.
+ */
+ public PolicyProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the ReplicationChannelSetting.
+ *
+ * @return the providerSpecificDetails value
+ */
+ public PolicyProviderSpecificDetails providerSpecificDetails() {
+ return this.providerSpecificDetails;
+ }
+
+ /**
+ * Set the ReplicationChannelSetting.
+ *
+ * @param providerSpecificDetails the providerSpecificDetails value to set
+ * @return the PolicyProperties object itself.
+ */
+ public PolicyProperties withProviderSpecificDetails(PolicyProviderSpecificDetails providerSpecificDetails) {
+ this.providerSpecificDetails = providerSpecificDetails;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificDetails.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificDetails.java
new file mode 100644
index 0000000000000..39b628668e074
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificDetails.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for Provider specific details for policies.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("PolicyProviderSpecificDetails")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVReplicaAzure", value = HyperVReplicaAzurePolicyDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplicaBasePolicyDetails", value = HyperVReplicaBasePolicyDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012", value = HyperVReplicaPolicyDetails.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012R2", value = HyperVReplicaBluePolicyDetails.class),
+ @JsonSubTypes.Type(name = "InMageBasePolicyDetails", value = InMageBasePolicyDetails.class),
+ @JsonSubTypes.Type(name = "InMageAzureV2", value = InMageAzureV2PolicyDetails.class),
+ @JsonSubTypes.Type(name = "InMage", value = InMagePolicyDetails.class),
+ @JsonSubTypes.Type(name = "A2A", value = A2APolicyDetails.class),
+ @JsonSubTypes.Type(name = "RcmAzureMigration", value = RcmAzureMigrationPolicyDetails.class),
+ @JsonSubTypes.Type(name = "VMwareCbt", value = VmwareCbtPolicyDetails.class)
+})
+public class PolicyProviderSpecificDetails {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificInput.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificInput.java
new file mode 100644
index 0000000000000..1f6b4ec11926a
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PolicyProviderSpecificInput.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for provider specific input.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "instanceType")
+@JsonTypeName("PolicyProviderSpecificInput")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "HyperVReplicaAzure", value = HyperVReplicaAzurePolicyInput.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012", value = HyperVReplicaPolicyInput.class),
+ @JsonSubTypes.Type(name = "HyperVReplica2012R2", value = HyperVReplicaBluePolicyInput.class),
+ @JsonSubTypes.Type(name = "InMageAzureV2", value = InMageAzureV2PolicyInput.class),
+ @JsonSubTypes.Type(name = "InMage", value = InMagePolicyInput.class),
+ @JsonSubTypes.Type(name = "A2A", value = A2APolicyCreationInput.class),
+ @JsonSubTypes.Type(name = "VMwareCbt", value = VMwareCbtPolicyCreationInput.class)
+})
+public class PolicyProviderSpecificInput {
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PossibleOperationsDirections.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PossibleOperationsDirections.java
new file mode 100644
index 0000000000000..3bc2a14d6df91
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/PossibleOperationsDirections.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for PossibleOperationsDirections.
+ */
+public enum PossibleOperationsDirections {
+ /** Enum value PrimaryToRecovery. */
+ PRIMARY_TO_RECOVERY("PrimaryToRecovery"),
+
+ /** Enum value RecoveryToPrimary. */
+ RECOVERY_TO_PRIMARY("RecoveryToPrimary");
+
+ /** The actual serialized value for a PossibleOperationsDirections instance. */
+ private String value;
+
+ PossibleOperationsDirections(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a PossibleOperationsDirections instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed PossibleOperationsDirections object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static PossibleOperationsDirections fromString(String value) {
+ PossibleOperationsDirections[] items = PossibleOperationsDirections.values();
+ for (PossibleOperationsDirections item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProcessServer.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProcessServer.java
new file mode 100644
index 0000000000000..7c5b5e2d1d106
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProcessServer.java
@@ -0,0 +1,671 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of the Process Server.
+ */
+public class ProcessServer {
+ /**
+ * The Process Server's friendly name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The Process Server Id.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The IP address of the server.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * The OS type of the server.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * The version of the scout component on the server.
+ */
+ @JsonProperty(value = "agentVersion")
+ private String agentVersion;
+
+ /**
+ * The last heartbeat received from the server.
+ */
+ @JsonProperty(value = "lastHeartbeat")
+ private DateTime lastHeartbeat;
+
+ /**
+ * Version status.
+ */
+ @JsonProperty(value = "versionStatus")
+ private String versionStatus;
+
+ /**
+ * The list of the mobility service updates available on the Process
+ * Server.
+ */
+ @JsonProperty(value = "mobilityServiceUpdates")
+ private List mobilityServiceUpdates;
+
+ /**
+ * The agent generated Id.
+ */
+ @JsonProperty(value = "hostId")
+ private String hostId;
+
+ /**
+ * The servers configured with this PS.
+ */
+ @JsonProperty(value = "machineCount")
+ private String machineCount;
+
+ /**
+ * The number of replication pairs configured in this PS.
+ */
+ @JsonProperty(value = "replicationPairCount")
+ private String replicationPairCount;
+
+ /**
+ * The percentage of the system load.
+ */
+ @JsonProperty(value = "systemLoad")
+ private String systemLoad;
+
+ /**
+ * The system load status.
+ */
+ @JsonProperty(value = "systemLoadStatus")
+ private String systemLoadStatus;
+
+ /**
+ * The percentage of the CPU load.
+ */
+ @JsonProperty(value = "cpuLoad")
+ private String cpuLoad;
+
+ /**
+ * The CPU load status.
+ */
+ @JsonProperty(value = "cpuLoadStatus")
+ private String cpuLoadStatus;
+
+ /**
+ * The total memory.
+ */
+ @JsonProperty(value = "totalMemoryInBytes")
+ private Long totalMemoryInBytes;
+
+ /**
+ * The available memory.
+ */
+ @JsonProperty(value = "availableMemoryInBytes")
+ private Long availableMemoryInBytes;
+
+ /**
+ * The memory usage status.
+ */
+ @JsonProperty(value = "memoryUsageStatus")
+ private String memoryUsageStatus;
+
+ /**
+ * The total space.
+ */
+ @JsonProperty(value = "totalSpaceInBytes")
+ private Long totalSpaceInBytes;
+
+ /**
+ * The available space.
+ */
+ @JsonProperty(value = "availableSpaceInBytes")
+ private Long availableSpaceInBytes;
+
+ /**
+ * The space usage status.
+ */
+ @JsonProperty(value = "spaceUsageStatus")
+ private String spaceUsageStatus;
+
+ /**
+ * The PS service status.
+ */
+ @JsonProperty(value = "psServiceStatus")
+ private String psServiceStatus;
+
+ /**
+ * The PS SSL cert expiry date.
+ */
+ @JsonProperty(value = "sslCertExpiryDate")
+ private DateTime sslCertExpiryDate;
+
+ /**
+ * CS SSL cert expiry date.
+ */
+ @JsonProperty(value = "sslCertExpiryRemainingDays")
+ private Integer sslCertExpiryRemainingDays;
+
+ /**
+ * OS Version of the process server. Note: This will get populated if user
+ * has CS version greater than 9.12.0.0.
+ */
+ @JsonProperty(value = "osVersion")
+ private String osVersion;
+
+ /**
+ * Get the Process Server's friendly name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the Process Server's friendly name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the Process Server Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the Process Server Id.
+ *
+ * @param id the id value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the IP address of the server.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set the IP address of the server.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ /**
+ * Get the OS type of the server.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set the OS type of the server.
+ *
+ * @param osType the osType value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get the version of the scout component on the server.
+ *
+ * @return the agentVersion value
+ */
+ public String agentVersion() {
+ return this.agentVersion;
+ }
+
+ /**
+ * Set the version of the scout component on the server.
+ *
+ * @param agentVersion the agentVersion value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withAgentVersion(String agentVersion) {
+ this.agentVersion = agentVersion;
+ return this;
+ }
+
+ /**
+ * Get the last heartbeat received from the server.
+ *
+ * @return the lastHeartbeat value
+ */
+ public DateTime lastHeartbeat() {
+ return this.lastHeartbeat;
+ }
+
+ /**
+ * Set the last heartbeat received from the server.
+ *
+ * @param lastHeartbeat the lastHeartbeat value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withLastHeartbeat(DateTime lastHeartbeat) {
+ this.lastHeartbeat = lastHeartbeat;
+ return this;
+ }
+
+ /**
+ * Get version status.
+ *
+ * @return the versionStatus value
+ */
+ public String versionStatus() {
+ return this.versionStatus;
+ }
+
+ /**
+ * Set version status.
+ *
+ * @param versionStatus the versionStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withVersionStatus(String versionStatus) {
+ this.versionStatus = versionStatus;
+ return this;
+ }
+
+ /**
+ * Get the list of the mobility service updates available on the Process Server.
+ *
+ * @return the mobilityServiceUpdates value
+ */
+ public List mobilityServiceUpdates() {
+ return this.mobilityServiceUpdates;
+ }
+
+ /**
+ * Set the list of the mobility service updates available on the Process Server.
+ *
+ * @param mobilityServiceUpdates the mobilityServiceUpdates value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withMobilityServiceUpdates(List mobilityServiceUpdates) {
+ this.mobilityServiceUpdates = mobilityServiceUpdates;
+ return this;
+ }
+
+ /**
+ * Get the agent generated Id.
+ *
+ * @return the hostId value
+ */
+ public String hostId() {
+ return this.hostId;
+ }
+
+ /**
+ * Set the agent generated Id.
+ *
+ * @param hostId the hostId value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withHostId(String hostId) {
+ this.hostId = hostId;
+ return this;
+ }
+
+ /**
+ * Get the servers configured with this PS.
+ *
+ * @return the machineCount value
+ */
+ public String machineCount() {
+ return this.machineCount;
+ }
+
+ /**
+ * Set the servers configured with this PS.
+ *
+ * @param machineCount the machineCount value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withMachineCount(String machineCount) {
+ this.machineCount = machineCount;
+ return this;
+ }
+
+ /**
+ * Get the number of replication pairs configured in this PS.
+ *
+ * @return the replicationPairCount value
+ */
+ public String replicationPairCount() {
+ return this.replicationPairCount;
+ }
+
+ /**
+ * Set the number of replication pairs configured in this PS.
+ *
+ * @param replicationPairCount the replicationPairCount value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withReplicationPairCount(String replicationPairCount) {
+ this.replicationPairCount = replicationPairCount;
+ return this;
+ }
+
+ /**
+ * Get the percentage of the system load.
+ *
+ * @return the systemLoad value
+ */
+ public String systemLoad() {
+ return this.systemLoad;
+ }
+
+ /**
+ * Set the percentage of the system load.
+ *
+ * @param systemLoad the systemLoad value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withSystemLoad(String systemLoad) {
+ this.systemLoad = systemLoad;
+ return this;
+ }
+
+ /**
+ * Get the system load status.
+ *
+ * @return the systemLoadStatus value
+ */
+ public String systemLoadStatus() {
+ return this.systemLoadStatus;
+ }
+
+ /**
+ * Set the system load status.
+ *
+ * @param systemLoadStatus the systemLoadStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withSystemLoadStatus(String systemLoadStatus) {
+ this.systemLoadStatus = systemLoadStatus;
+ return this;
+ }
+
+ /**
+ * Get the percentage of the CPU load.
+ *
+ * @return the cpuLoad value
+ */
+ public String cpuLoad() {
+ return this.cpuLoad;
+ }
+
+ /**
+ * Set the percentage of the CPU load.
+ *
+ * @param cpuLoad the cpuLoad value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withCpuLoad(String cpuLoad) {
+ this.cpuLoad = cpuLoad;
+ return this;
+ }
+
+ /**
+ * Get the CPU load status.
+ *
+ * @return the cpuLoadStatus value
+ */
+ public String cpuLoadStatus() {
+ return this.cpuLoadStatus;
+ }
+
+ /**
+ * Set the CPU load status.
+ *
+ * @param cpuLoadStatus the cpuLoadStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withCpuLoadStatus(String cpuLoadStatus) {
+ this.cpuLoadStatus = cpuLoadStatus;
+ return this;
+ }
+
+ /**
+ * Get the total memory.
+ *
+ * @return the totalMemoryInBytes value
+ */
+ public Long totalMemoryInBytes() {
+ return this.totalMemoryInBytes;
+ }
+
+ /**
+ * Set the total memory.
+ *
+ * @param totalMemoryInBytes the totalMemoryInBytes value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withTotalMemoryInBytes(Long totalMemoryInBytes) {
+ this.totalMemoryInBytes = totalMemoryInBytes;
+ return this;
+ }
+
+ /**
+ * Get the available memory.
+ *
+ * @return the availableMemoryInBytes value
+ */
+ public Long availableMemoryInBytes() {
+ return this.availableMemoryInBytes;
+ }
+
+ /**
+ * Set the available memory.
+ *
+ * @param availableMemoryInBytes the availableMemoryInBytes value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withAvailableMemoryInBytes(Long availableMemoryInBytes) {
+ this.availableMemoryInBytes = availableMemoryInBytes;
+ return this;
+ }
+
+ /**
+ * Get the memory usage status.
+ *
+ * @return the memoryUsageStatus value
+ */
+ public String memoryUsageStatus() {
+ return this.memoryUsageStatus;
+ }
+
+ /**
+ * Set the memory usage status.
+ *
+ * @param memoryUsageStatus the memoryUsageStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withMemoryUsageStatus(String memoryUsageStatus) {
+ this.memoryUsageStatus = memoryUsageStatus;
+ return this;
+ }
+
+ /**
+ * Get the total space.
+ *
+ * @return the totalSpaceInBytes value
+ */
+ public Long totalSpaceInBytes() {
+ return this.totalSpaceInBytes;
+ }
+
+ /**
+ * Set the total space.
+ *
+ * @param totalSpaceInBytes the totalSpaceInBytes value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withTotalSpaceInBytes(Long totalSpaceInBytes) {
+ this.totalSpaceInBytes = totalSpaceInBytes;
+ return this;
+ }
+
+ /**
+ * Get the available space.
+ *
+ * @return the availableSpaceInBytes value
+ */
+ public Long availableSpaceInBytes() {
+ return this.availableSpaceInBytes;
+ }
+
+ /**
+ * Set the available space.
+ *
+ * @param availableSpaceInBytes the availableSpaceInBytes value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withAvailableSpaceInBytes(Long availableSpaceInBytes) {
+ this.availableSpaceInBytes = availableSpaceInBytes;
+ return this;
+ }
+
+ /**
+ * Get the space usage status.
+ *
+ * @return the spaceUsageStatus value
+ */
+ public String spaceUsageStatus() {
+ return this.spaceUsageStatus;
+ }
+
+ /**
+ * Set the space usage status.
+ *
+ * @param spaceUsageStatus the spaceUsageStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withSpaceUsageStatus(String spaceUsageStatus) {
+ this.spaceUsageStatus = spaceUsageStatus;
+ return this;
+ }
+
+ /**
+ * Get the PS service status.
+ *
+ * @return the psServiceStatus value
+ */
+ public String psServiceStatus() {
+ return this.psServiceStatus;
+ }
+
+ /**
+ * Set the PS service status.
+ *
+ * @param psServiceStatus the psServiceStatus value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withPsServiceStatus(String psServiceStatus) {
+ this.psServiceStatus = psServiceStatus;
+ return this;
+ }
+
+ /**
+ * Get the PS SSL cert expiry date.
+ *
+ * @return the sslCertExpiryDate value
+ */
+ public DateTime sslCertExpiryDate() {
+ return this.sslCertExpiryDate;
+ }
+
+ /**
+ * Set the PS SSL cert expiry date.
+ *
+ * @param sslCertExpiryDate the sslCertExpiryDate value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withSslCertExpiryDate(DateTime sslCertExpiryDate) {
+ this.sslCertExpiryDate = sslCertExpiryDate;
+ return this;
+ }
+
+ /**
+ * Get cS SSL cert expiry date.
+ *
+ * @return the sslCertExpiryRemainingDays value
+ */
+ public Integer sslCertExpiryRemainingDays() {
+ return this.sslCertExpiryRemainingDays;
+ }
+
+ /**
+ * Set cS SSL cert expiry date.
+ *
+ * @param sslCertExpiryRemainingDays the sslCertExpiryRemainingDays value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withSslCertExpiryRemainingDays(Integer sslCertExpiryRemainingDays) {
+ this.sslCertExpiryRemainingDays = sslCertExpiryRemainingDays;
+ return this;
+ }
+
+ /**
+ * Get oS Version of the process server. Note: This will get populated if user has CS version greater than 9.12.0.0.
+ *
+ * @return the osVersion value
+ */
+ public String osVersion() {
+ return this.osVersion;
+ }
+
+ /**
+ * Set oS Version of the process server. Note: This will get populated if user has CS version greater than 9.12.0.0.
+ *
+ * @param osVersion the osVersion value to set
+ * @return the ProcessServer object itself.
+ */
+ public ProcessServer withOsVersion(String osVersion) {
+ this.osVersion = osVersion;
+ return this;
+ }
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItem.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItem.java
new file mode 100644
index 0000000000000..62a201a7d7187
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItem.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.ProtectableItemInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10.implementation.RecoveryServicesManager;
+
+/**
+ * Type representing ProtectableItem.
+ */
+public interface ProtectableItem extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ ProtectableItemProperties properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItemProperties.java b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItemProperties.java
new file mode 100644
index 0000000000000..026f4436ea806
--- /dev/null
+++ b/recoveryservicessiterecovery/resource-manager/v2018_01_10/src/main/java/com/microsoft/azure/management/recoveryservicessiterecovery/v2018_01_10/ProtectableItemProperties.java
@@ -0,0 +1,200 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.recoveryservicessiterecovery.v2018_01_10;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Replication protected item custom data details.
+ */
+public class ProtectableItemProperties {
+ /**
+ * The name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * The protection status.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private String protectionStatus;
+
+ /**
+ * The ARM resource of protected items.
+ */
+ @JsonProperty(value = "replicationProtectedItemId")
+ private String replicationProtectedItemId;
+
+ /**
+ * The recovery provider ARM Id.
+ */
+ @JsonProperty(value = "recoveryServicesProviderId")
+ private String recoveryServicesProviderId;
+
+ /**
+ * The Current protection readiness errors.
+ */
+ @JsonProperty(value = "protectionReadinessErrors")
+ private List protectionReadinessErrors;
+
+ /**
+ * The list of replication providers supported for the protectable item.
+ */
+ @JsonProperty(value = "supportedReplicationProviders")
+ private List supportedReplicationProviders;
+
+ /**
+ * The Replication provider custom settings.
+ */
+ @JsonProperty(value = "customDetails")
+ private ConfigurationSettings customDetails;
+
+ /**
+ * Get the name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set the name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the ProtectableItemProperties object itself.
+ */
+ public ProtectableItemProperties withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get the protection status.
+ *
+ * @return the protectionStatus value
+ */
+ public String protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set the protection status.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the ProtectableItemProperties object itself.
+ */
+ public ProtectableItemProperties withProtectionStatus(String protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get the ARM resource of protected items.
+ *
+ * @return the replicationProtectedItemId value
+ */
+ public String replicationProtectedItemId() {
+ return this.replicationProtectedItemId;
+ }
+
+ /**
+ * Set the ARM resource of protected items.
+ *
+ * @param replicationProtectedItemId the replicationProtectedItemId value to set
+ * @return the ProtectableItemProperties object itself.
+ */
+ public ProtectableItemProperties withReplicationProtectedItemId(String replicationProtectedItemId) {
+ this.replicationProtectedItemId = replicationProtectedItemId;
+ return this;
+ }
+
+ /**
+ * Get the recovery provider ARM Id.
+ *
+ * @return the recoveryServicesProviderId value
+ */
+ public String recoveryServicesProviderId() {
+ return this.recoveryServicesProviderId;
+ }
+
+ /**
+ * Set the recovery provider ARM Id.
+ *
+ * @param recoveryServicesProviderId the recoveryServicesProviderId value to set
+ * @return the ProtectableItemProperties object itself.
+ */
+ public ProtectableItemProperties withRecoveryServicesProviderId(String recoveryServicesProviderId) {
+ this.recoveryServicesProviderId = recoveryServicesProviderId;
+ return this;
+ }
+
+ /**
+ * Get the Current protection readiness errors.
+ *
+ * @return the protectionReadinessErrors value
+ */
+ public List protectionReadinessErrors() {
+ return this.protectionReadinessErrors;
+ }
+
+ /**
+ * Set the Current protection readiness errors.
+ *
+ * @param protectionReadinessErrors the protectionReadinessErrors value to set
+ * @return the ProtectableItemProperties object itself.
+ */
+ public ProtectableItemProperties withProtectionReadinessErrors(List