diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/pom.xml b/sdk/recoveryservices.backup/mgmt-v2020_02_02/pom.xml
new file mode 100644
index 000000000000..d5e1c550b8e8
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/pom.xml
@@ -0,0 +1,137 @@
+
+
+ 4.0.0
+ com.microsoft.azure.recoveryservices.backup.v2020_02_02
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.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
+
+ 1.6.5
+
+
+
+
+
+ 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
+ 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/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupGoalFeatureSupportRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupGoalFeatureSupportRequest.java
new file mode 100644
index 000000000000..ac0ad190ed0d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupGoalFeatureSupportRequest.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure backup goal feature specific request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "featureType", defaultImpl = AzureBackupGoalFeatureSupportRequest.class)
+@JsonTypeName("AzureBackupGoals")
+public class AzureBackupGoalFeatureSupportRequest extends FeatureSupportRequest {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerContainer.java
new file mode 100644
index 000000000000..745f4d5362d0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerContainer.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureBackupServer (DPMVenus) workload-specific protection container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureBackupServerContainer.class)
+@JsonTypeName("AzureBackupServerContainer")
+public class AzureBackupServerContainer extends DpmContainer {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerEngine.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerEngine.java
new file mode 100644
index 000000000000..ba1ef81e683c
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureBackupServerEngine.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Backup engine type when Azure Backup Server is used to manage the backups.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupEngineType", defaultImpl = AzureBackupServerEngine.class)
+@JsonTypeName("AzureBackupServerEngine")
+public class AzureBackupServerEngine extends BackupEngineBase {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareBackupRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareBackupRequest.java
new file mode 100644
index 000000000000..ef0e52cd1624
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareBackupRequest.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureFileShare workload-specific backup request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureFileShareBackupRequest.class)
+@JsonTypeName("AzureFileShareBackupRequest")
+public class AzureFileShareBackupRequest extends BackupRequest {
+ /**
+ * Backup copy will expire after the time specified (UTC).
+ */
+ @JsonProperty(value = "recoveryPointExpiryTimeInUTC")
+ private DateTime recoveryPointExpiryTimeInUTC;
+
+ /**
+ * Get backup copy will expire after the time specified (UTC).
+ *
+ * @return the recoveryPointExpiryTimeInUTC value
+ */
+ public DateTime recoveryPointExpiryTimeInUTC() {
+ return this.recoveryPointExpiryTimeInUTC;
+ }
+
+ /**
+ * Set backup copy will expire after the time specified (UTC).
+ *
+ * @param recoveryPointExpiryTimeInUTC the recoveryPointExpiryTimeInUTC value to set
+ * @return the AzureFileShareBackupRequest object itself.
+ */
+ public AzureFileShareBackupRequest withRecoveryPointExpiryTimeInUTC(DateTime recoveryPointExpiryTimeInUTC) {
+ this.recoveryPointExpiryTimeInUTC = recoveryPointExpiryTimeInUTC;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectableItem.java
new file mode 100644
index 000000000000..1a479e726e67
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectableItem.java
@@ -0,0 +1,103 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Protectable item for Azure Fileshare workloads.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureFileShareProtectableItem.class)
+@JsonTypeName("AzureFileShare")
+public class AzureFileShareProtectableItem extends WorkloadProtectableItem {
+ /**
+ * Full Fabric ID of container to which this protectable item belongs. For
+ * example, ARM ID.
+ */
+ @JsonProperty(value = "parentContainerFabricId")
+ private String parentContainerFabricId;
+
+ /**
+ * Friendly name of container to which this protectable item belongs.
+ */
+ @JsonProperty(value = "parentContainerFriendlyName")
+ private String parentContainerFriendlyName;
+
+ /**
+ * File Share type XSync or XSMB. Possible values include: 'Invalid',
+ * 'XSMB', 'XSync'.
+ */
+ @JsonProperty(value = "azureFileShareType")
+ private AzureFileShareType azureFileShareType;
+
+ /**
+ * Get full Fabric ID of container to which this protectable item belongs. For example, ARM ID.
+ *
+ * @return the parentContainerFabricId value
+ */
+ public String parentContainerFabricId() {
+ return this.parentContainerFabricId;
+ }
+
+ /**
+ * Set full Fabric ID of container to which this protectable item belongs. For example, ARM ID.
+ *
+ * @param parentContainerFabricId the parentContainerFabricId value to set
+ * @return the AzureFileShareProtectableItem object itself.
+ */
+ public AzureFileShareProtectableItem withParentContainerFabricId(String parentContainerFabricId) {
+ this.parentContainerFabricId = parentContainerFabricId;
+ return this;
+ }
+
+ /**
+ * Get friendly name of container to which this protectable item belongs.
+ *
+ * @return the parentContainerFriendlyName value
+ */
+ public String parentContainerFriendlyName() {
+ return this.parentContainerFriendlyName;
+ }
+
+ /**
+ * Set friendly name of container to which this protectable item belongs.
+ *
+ * @param parentContainerFriendlyName the parentContainerFriendlyName value to set
+ * @return the AzureFileShareProtectableItem object itself.
+ */
+ public AzureFileShareProtectableItem withParentContainerFriendlyName(String parentContainerFriendlyName) {
+ this.parentContainerFriendlyName = parentContainerFriendlyName;
+ return this;
+ }
+
+ /**
+ * Get file Share type XSync or XSMB. Possible values include: 'Invalid', 'XSMB', 'XSync'.
+ *
+ * @return the azureFileShareType value
+ */
+ public AzureFileShareType azureFileShareType() {
+ return this.azureFileShareType;
+ }
+
+ /**
+ * Set file Share type XSync or XSMB. Possible values include: 'Invalid', 'XSMB', 'XSync'.
+ *
+ * @param azureFileShareType the azureFileShareType value to set
+ * @return the AzureFileShareProtectableItem object itself.
+ */
+ public AzureFileShareProtectableItem withAzureFileShareType(AzureFileShareType azureFileShareType) {
+ this.azureFileShareType = azureFileShareType;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectionPolicy.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectionPolicy.java
new file mode 100644
index 000000000000..35c1a4436eb5
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProtectionPolicy.java
@@ -0,0 +1,132 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyInner;
+
+/**
+ * AzureStorage backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupManagementType", defaultImpl = AzureFileShareProtectionPolicy.class)
+@JsonTypeName("AzureStorage")
+public class AzureFileShareProtectionPolicy extends ProtectionPolicyInner {
+ /**
+ * Type of workload for the backup management. Possible values include:
+ * 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange',
+ * 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource',
+ * 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workLoadType")
+ private WorkloadType workLoadType;
+
+ /**
+ * Backup schedule specified as part of backup policy.
+ */
+ @JsonProperty(value = "schedulePolicy")
+ private SchedulePolicy schedulePolicy;
+
+ /**
+ * Retention policy with the details on backup copy retention ranges.
+ */
+ @JsonProperty(value = "retentionPolicy")
+ private RetentionPolicy retentionPolicy;
+
+ /**
+ * TimeZone optional input as string. For example: TimeZone = "Pacific
+ * Standard Time".
+ */
+ @JsonProperty(value = "timeZone")
+ private String timeZone;
+
+ /**
+ * Get type of workload for the backup management. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workLoadType value
+ */
+ public WorkloadType workLoadType() {
+ return this.workLoadType;
+ }
+
+ /**
+ * Set type of workload for the backup management. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workLoadType the workLoadType value to set
+ * @return the AzureFileShareProtectionPolicy object itself.
+ */
+ public AzureFileShareProtectionPolicy withWorkLoadType(WorkloadType workLoadType) {
+ this.workLoadType = workLoadType;
+ return this;
+ }
+
+ /**
+ * Get backup schedule specified as part of backup policy.
+ *
+ * @return the schedulePolicy value
+ */
+ public SchedulePolicy schedulePolicy() {
+ return this.schedulePolicy;
+ }
+
+ /**
+ * Set backup schedule specified as part of backup policy.
+ *
+ * @param schedulePolicy the schedulePolicy value to set
+ * @return the AzureFileShareProtectionPolicy object itself.
+ */
+ public AzureFileShareProtectionPolicy withSchedulePolicy(SchedulePolicy schedulePolicy) {
+ this.schedulePolicy = schedulePolicy;
+ return this;
+ }
+
+ /**
+ * Get retention policy with the details on backup copy retention ranges.
+ *
+ * @return the retentionPolicy value
+ */
+ public RetentionPolicy retentionPolicy() {
+ return this.retentionPolicy;
+ }
+
+ /**
+ * Set retention policy with the details on backup copy retention ranges.
+ *
+ * @param retentionPolicy the retentionPolicy value to set
+ * @return the AzureFileShareProtectionPolicy object itself.
+ */
+ public AzureFileShareProtectionPolicy withRetentionPolicy(RetentionPolicy retentionPolicy) {
+ this.retentionPolicy = retentionPolicy;
+ return this;
+ }
+
+ /**
+ * Get timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @return the timeZone value
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Set timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @param timeZone the timeZone value to set
+ * @return the AzureFileShareProtectionPolicy object itself.
+ */
+ public AzureFileShareProtectionPolicy withTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProvisionILRRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProvisionILRRequest.java
new file mode 100644
index 000000000000..149c1eeaa362
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareProvisionILRRequest.java
@@ -0,0 +1,76 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Update snapshot Uri with the correct friendly Name of the source Azure file
+ * share.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureFileShareProvisionILRRequest.class)
+@JsonTypeName("AzureFileShareProvisionILRRequest")
+public class AzureFileShareProvisionILRRequest extends ILRRequest {
+ /**
+ * Recovery point ID.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Source Storage account ARM Id.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * Get recovery point ID.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set recovery point ID.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the AzureFileShareProvisionILRRequest object itself.
+ */
+ public AzureFileShareProvisionILRRequest withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get source Storage account ARM Id.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set source Storage account ARM Id.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the AzureFileShareProvisionILRRequest object itself.
+ */
+ public AzureFileShareProvisionILRRequest withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRecoveryPoint.java
new file mode 100644
index 000000000000..a95e496d0ece
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRecoveryPoint.java
@@ -0,0 +1,86 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryPointInner;
+
+/**
+ * Azure File Share workload specific backup copy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureFileShareRecoveryPoint.class)
+@JsonTypeName("AzureFileShareRecoveryPoint")
+public class AzureFileShareRecoveryPoint extends RecoveryPointInner {
+ /**
+ * Type of the backup copy. Specifies whether it is a crash consistent
+ * backup or app consistent.
+ */
+ @JsonProperty(value = "recoveryPointType", access = JsonProperty.Access.WRITE_ONLY)
+ private String recoveryPointType;
+
+ /**
+ * Time at which this backup copy was created.
+ */
+ @JsonProperty(value = "recoveryPointTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime recoveryPointTime;
+
+ /**
+ * Contains Url to the snapshot of fileshare, if applicable.
+ */
+ @JsonProperty(value = "fileShareSnapshotUri", access = JsonProperty.Access.WRITE_ONLY)
+ private String fileShareSnapshotUri;
+
+ /**
+ * Contains recovery point size.
+ */
+ @JsonProperty(value = "recoveryPointSizeInGB", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer recoveryPointSizeInGB;
+
+ /**
+ * Get type of the backup copy. Specifies whether it is a crash consistent backup or app consistent.
+ *
+ * @return the recoveryPointType value
+ */
+ public String recoveryPointType() {
+ return this.recoveryPointType;
+ }
+
+ /**
+ * Get time at which this backup copy was created.
+ *
+ * @return the recoveryPointTime value
+ */
+ public DateTime recoveryPointTime() {
+ return this.recoveryPointTime;
+ }
+
+ /**
+ * Get contains Url to the snapshot of fileshare, if applicable.
+ *
+ * @return the fileShareSnapshotUri value
+ */
+ public String fileShareSnapshotUri() {
+ return this.fileShareSnapshotUri;
+ }
+
+ /**
+ * Get contains recovery point size.
+ *
+ * @return the recoveryPointSizeInGB value
+ */
+ public Integer recoveryPointSizeInGB() {
+ return this.recoveryPointSizeInGB;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRestoreRequest.java
new file mode 100644
index 000000000000..36980f81eeaf
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareRestoreRequest.java
@@ -0,0 +1,184 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureFileShare Restore Request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureFileShareRestoreRequest.class)
+@JsonTypeName("AzureFileShareRestoreRequest")
+public class AzureFileShareRestoreRequest extends RestoreRequest {
+ /**
+ * Type of this recovery. Possible values include: 'Invalid',
+ * 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ */
+ @JsonProperty(value = "recoveryType")
+ private RecoveryType recoveryType;
+
+ /**
+ * Source storage account ARM Id.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * Options to resolve copy conflicts. Possible values include: 'Invalid',
+ * 'CreateCopy', 'Skip', 'Overwrite', 'FailOnConflict'.
+ */
+ @JsonProperty(value = "copyOptions")
+ private CopyOptions copyOptions;
+
+ /**
+ * Restore Type (FullShareRestore or ItemLevelRestore). Possible values
+ * include: 'Invalid', 'FullShareRestore', 'ItemLevelRestore'.
+ */
+ @JsonProperty(value = "restoreRequestType")
+ private RestoreRequestType restoreRequestType;
+
+ /**
+ * List of Source Files/Folders(which need to recover) and TargetFolderPath
+ * details.
+ */
+ @JsonProperty(value = "restoreFileSpecs")
+ private List restoreFileSpecs;
+
+ /**
+ * Target File Share Details.
+ */
+ @JsonProperty(value = "targetDetails")
+ private TargetAFSRestoreInfo targetDetails;
+
+ /**
+ * Get type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @return the recoveryType value
+ */
+ public RecoveryType recoveryType() {
+ return this.recoveryType;
+ }
+
+ /**
+ * Set type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @param recoveryType the recoveryType value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withRecoveryType(RecoveryType recoveryType) {
+ this.recoveryType = recoveryType;
+ return this;
+ }
+
+ /**
+ * Get source storage account ARM Id.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set source storage account ARM Id.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * Get options to resolve copy conflicts. Possible values include: 'Invalid', 'CreateCopy', 'Skip', 'Overwrite', 'FailOnConflict'.
+ *
+ * @return the copyOptions value
+ */
+ public CopyOptions copyOptions() {
+ return this.copyOptions;
+ }
+
+ /**
+ * Set options to resolve copy conflicts. Possible values include: 'Invalid', 'CreateCopy', 'Skip', 'Overwrite', 'FailOnConflict'.
+ *
+ * @param copyOptions the copyOptions value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withCopyOptions(CopyOptions copyOptions) {
+ this.copyOptions = copyOptions;
+ return this;
+ }
+
+ /**
+ * Get restore Type (FullShareRestore or ItemLevelRestore). Possible values include: 'Invalid', 'FullShareRestore', 'ItemLevelRestore'.
+ *
+ * @return the restoreRequestType value
+ */
+ public RestoreRequestType restoreRequestType() {
+ return this.restoreRequestType;
+ }
+
+ /**
+ * Set restore Type (FullShareRestore or ItemLevelRestore). Possible values include: 'Invalid', 'FullShareRestore', 'ItemLevelRestore'.
+ *
+ * @param restoreRequestType the restoreRequestType value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withRestoreRequestType(RestoreRequestType restoreRequestType) {
+ this.restoreRequestType = restoreRequestType;
+ return this;
+ }
+
+ /**
+ * Get list of Source Files/Folders(which need to recover) and TargetFolderPath details.
+ *
+ * @return the restoreFileSpecs value
+ */
+ public List restoreFileSpecs() {
+ return this.restoreFileSpecs;
+ }
+
+ /**
+ * Set list of Source Files/Folders(which need to recover) and TargetFolderPath details.
+ *
+ * @param restoreFileSpecs the restoreFileSpecs value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withRestoreFileSpecs(List restoreFileSpecs) {
+ this.restoreFileSpecs = restoreFileSpecs;
+ return this;
+ }
+
+ /**
+ * Get target File Share Details.
+ *
+ * @return the targetDetails value
+ */
+ public TargetAFSRestoreInfo targetDetails() {
+ return this.targetDetails;
+ }
+
+ /**
+ * Set target File Share Details.
+ *
+ * @param targetDetails the targetDetails value to set
+ * @return the AzureFileShareRestoreRequest object itself.
+ */
+ public AzureFileShareRestoreRequest withTargetDetails(TargetAFSRestoreInfo targetDetails) {
+ this.targetDetails = targetDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareType.java
new file mode 100644
index 000000000000..7b1d4bc12ef5
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileShareType.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AzureFileShareType.
+ */
+public final class AzureFileShareType extends ExpandableStringEnum {
+ /** Static value Invalid for AzureFileShareType. */
+ public static final AzureFileShareType INVALID = fromString("Invalid");
+
+ /** Static value XSMB for AzureFileShareType. */
+ public static final AzureFileShareType XSMB = fromString("XSMB");
+
+ /** Static value XSync for AzureFileShareType. */
+ public static final AzureFileShareType XSYNC = fromString("XSync");
+
+ /**
+ * Creates or finds a AzureFileShareType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AzureFileShareType
+ */
+ @JsonCreator
+ public static AzureFileShareType fromString(String name) {
+ return fromString(name, AzureFileShareType.class);
+ }
+
+ /**
+ * @return known AzureFileShareType values
+ */
+ public static Collection values() {
+ return values(AzureFileShareType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItem.java
new file mode 100644
index 000000000000..ac0dc0781f72
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItem.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * Azure File Share workload-specific backup item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureFileshareProtectedItem.class)
+@JsonTypeName("AzureFileShareProtectedItem")
+public class AzureFileshareProtectedItem extends ProtectedItemInner {
+ /**
+ * Friendly name of the fileshare represented by this backup item.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Backup status of this backup item.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private String protectionStatus;
+
+ /**
+ * Backup state of this backup item. Possible values include: 'Invalid',
+ * 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped',
+ * 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectionState protectionState;
+
+ /**
+ * Last backup operation status. Possible values: Healthy, Unhealthy.
+ */
+ @JsonProperty(value = "lastBackupStatus")
+ private String lastBackupStatus;
+
+ /**
+ * Timestamp of the last backup operation on this backup item.
+ */
+ @JsonProperty(value = "lastBackupTime")
+ private DateTime lastBackupTime;
+
+ /**
+ * Health details of different KPIs.
+ */
+ @JsonProperty(value = "kpisHealths")
+ private Map kpisHealths;
+
+ /**
+ * Additional information with this backup item.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureFileshareProtectedItemExtendedInfo extendedInfo;
+
+ /**
+ * Get friendly name of the fileshare represented by this backup item.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the fileshare represented by this backup item.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get backup status of this backup item.
+ *
+ * @return the protectionStatus value
+ */
+ public String protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set backup status of this backup item.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withProtectionStatus(String protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectionState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withProtectionState(ProtectionState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get last backup operation status. Possible values: Healthy, Unhealthy.
+ *
+ * @return the lastBackupStatus value
+ */
+ public String lastBackupStatus() {
+ return this.lastBackupStatus;
+ }
+
+ /**
+ * Set last backup operation status. Possible values: Healthy, Unhealthy.
+ *
+ * @param lastBackupStatus the lastBackupStatus value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withLastBackupStatus(String lastBackupStatus) {
+ this.lastBackupStatus = lastBackupStatus;
+ return this;
+ }
+
+ /**
+ * Get timestamp of the last backup operation on this backup item.
+ *
+ * @return the lastBackupTime value
+ */
+ public DateTime lastBackupTime() {
+ return this.lastBackupTime;
+ }
+
+ /**
+ * Set timestamp of the last backup operation on this backup item.
+ *
+ * @param lastBackupTime the lastBackupTime value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withLastBackupTime(DateTime lastBackupTime) {
+ this.lastBackupTime = lastBackupTime;
+ return this;
+ }
+
+ /**
+ * Get health details of different KPIs.
+ *
+ * @return the kpisHealths value
+ */
+ public Map kpisHealths() {
+ return this.kpisHealths;
+ }
+
+ /**
+ * Set health details of different KPIs.
+ *
+ * @param kpisHealths the kpisHealths value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withKpisHealths(Map kpisHealths) {
+ this.kpisHealths = kpisHealths;
+ return this;
+ }
+
+ /**
+ * Get additional information with this backup item.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureFileshareProtectedItemExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information with this backup item.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureFileshareProtectedItem object itself.
+ */
+ public AzureFileshareProtectedItem withExtendedInfo(AzureFileshareProtectedItemExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItemExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItemExtendedInfo.java
new file mode 100644
index 000000000000..78f8518a0f0f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureFileshareProtectedItemExtendedInfo.java
@@ -0,0 +1,130 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information about Azure File Share backup item.
+ */
+public class AzureFileshareProtectedItemExtendedInfo {
+ /**
+ * The oldest backup copy available for this item in the service.
+ */
+ @JsonProperty(value = "oldestRecoveryPoint")
+ private DateTime oldestRecoveryPoint;
+
+ /**
+ * Number of available backup copies associated with this backup item.
+ */
+ @JsonProperty(value = "recoveryPointCount")
+ private Integer recoveryPointCount;
+
+ /**
+ * Indicates consistency of policy object and policy applied to this backup
+ * item.
+ */
+ @JsonProperty(value = "policyState")
+ private String policyState;
+
+ /**
+ * Indicates the state of this resource. Possible values are from enum
+ * ResourceState {Invalid, Active, SoftDeleted, Deleted}.
+ */
+ @JsonProperty(value = "resourceState", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceState;
+
+ /**
+ * The resource state sync time for this backup item.
+ */
+ @JsonProperty(value = "resourceStateSyncTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime resourceStateSyncTime;
+
+ /**
+ * Get the oldest backup copy available for this item in the service.
+ *
+ * @return the oldestRecoveryPoint value
+ */
+ public DateTime oldestRecoveryPoint() {
+ return this.oldestRecoveryPoint;
+ }
+
+ /**
+ * Set the oldest backup copy available for this item in the service.
+ *
+ * @param oldestRecoveryPoint the oldestRecoveryPoint value to set
+ * @return the AzureFileshareProtectedItemExtendedInfo object itself.
+ */
+ public AzureFileshareProtectedItemExtendedInfo withOldestRecoveryPoint(DateTime oldestRecoveryPoint) {
+ this.oldestRecoveryPoint = oldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get number of available backup copies associated with this backup item.
+ *
+ * @return the recoveryPointCount value
+ */
+ public Integer recoveryPointCount() {
+ return this.recoveryPointCount;
+ }
+
+ /**
+ * Set number of available backup copies associated with this backup item.
+ *
+ * @param recoveryPointCount the recoveryPointCount value to set
+ * @return the AzureFileshareProtectedItemExtendedInfo object itself.
+ */
+ public AzureFileshareProtectedItemExtendedInfo withRecoveryPointCount(Integer recoveryPointCount) {
+ this.recoveryPointCount = recoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @return the policyState value
+ */
+ public String policyState() {
+ return this.policyState;
+ }
+
+ /**
+ * Set indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @param policyState the policyState value to set
+ * @return the AzureFileshareProtectedItemExtendedInfo object itself.
+ */
+ public AzureFileshareProtectedItemExtendedInfo withPolicyState(String policyState) {
+ this.policyState = policyState;
+ return this;
+ }
+
+ /**
+ * Get indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted}.
+ *
+ * @return the resourceState value
+ */
+ public String resourceState() {
+ return this.resourceState;
+ }
+
+ /**
+ * Get the resource state sync time for this backup item.
+ *
+ * @return the resourceStateSyncTime value
+ */
+ public DateTime resourceStateSyncTime() {
+ return this.resourceStateSyncTime;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMContainer.java
new file mode 100644
index 000000000000..64d232ef8ff3
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMContainer.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing a classic virtual
+ * machine.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureIaaSClassicComputeVMContainer.class)
+@JsonTypeName("Microsoft.ClassicCompute/virtualMachines")
+public class AzureIaaSClassicComputeVMContainer extends IaaSVMContainer {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectableItem.java
new file mode 100644
index 000000000000..d991fd466401
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing the Classic Compute VM.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureIaaSClassicComputeVMProtectableItem.class)
+@JsonTypeName("Microsoft.ClassicCompute/virtualMachines")
+public class AzureIaaSClassicComputeVMProtectableItem extends IaaSVMProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectedItem.java
new file mode 100644
index 000000000000..df241cf02112
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSClassicComputeVMProtectedItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing the Classic Compute VM.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureIaaSClassicComputeVMProtectedItem.class)
+@JsonTypeName("Microsoft.ClassicCompute/virtualMachines")
+public class AzureIaaSClassicComputeVMProtectedItem extends AzureIaaSVMProtectedItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMContainer.java
new file mode 100644
index 000000000000..53c5f0e2544b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMContainer.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing an Azure Resource Manager
+ * virtual machine.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureIaaSComputeVMContainer.class)
+@JsonTypeName("Microsoft.Compute/virtualMachines")
+public class AzureIaaSComputeVMContainer extends IaaSVMContainer {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectableItem.java
new file mode 100644
index 000000000000..e584aae4dbcb
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectableItem.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing the Azure Resource
+ * Manager VM.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureIaaSComputeVMProtectableItem.class)
+@JsonTypeName("Microsoft.Compute/virtualMachines")
+public class AzureIaaSComputeVMProtectableItem extends IaaSVMProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectedItem.java
new file mode 100644
index 000000000000..4f5ff756975a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSComputeVMProtectedItem.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup item representing the Azure Resource
+ * Manager VM.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureIaaSComputeVMProtectedItem.class)
+@JsonTypeName("Microsoft.Compute/virtualMachines")
+public class AzureIaaSComputeVMProtectedItem extends AzureIaaSVMProtectedItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMErrorInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMErrorInfo.java
new file mode 100644
index 000000000000..9c90891dd562
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMErrorInfo.java
@@ -0,0 +1,80 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure IaaS VM workload-specific error information.
+ */
+public class AzureIaaSVMErrorInfo {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer errorCode;
+
+ /**
+ * Title: Typically, the entity that the error pertains to.
+ */
+ @JsonProperty(value = "errorTitle", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorTitle;
+
+ /**
+ * Localized error string.
+ */
+ @JsonProperty(value = "errorString", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorString;
+
+ /**
+ * List of localized recommendations for above error code.
+ */
+ @JsonProperty(value = "recommendations", access = JsonProperty.Access.WRITE_ONLY)
+ private List recommendations;
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public Integer errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Get title: Typically, the entity that the error pertains to.
+ *
+ * @return the errorTitle value
+ */
+ public String errorTitle() {
+ return this.errorTitle;
+ }
+
+ /**
+ * Get localized error string.
+ *
+ * @return the errorString value
+ */
+ public String errorString() {
+ return this.errorString;
+ }
+
+ /**
+ * Get list of localized recommendations for above error code.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMHealthDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMHealthDetails.java
new file mode 100644
index 000000000000..3130cb70c3c9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMHealthDetails.java
@@ -0,0 +1,18 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+
+/**
+ * Azure IaaS VM workload-specific Health Details.
+ */
+public class AzureIaaSVMHealthDetails extends ResourceHealthDetails {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJob.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJob.java
new file mode 100644
index 000000000000..10e1e28c336c
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJob.java
@@ -0,0 +1,157 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.Period;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobInner;
+
+/**
+ * Azure IaaS VM workload-specific job object.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "jobType", defaultImpl = AzureIaaSVMJob.class)
+@JsonTypeName("AzureIaaSVMJob")
+public class AzureIaaSVMJob extends JobInner {
+ /**
+ * Time elapsed during the execution of this job.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * Gets or sets the state/actions applicable on this job like cancel/retry.
+ */
+ @JsonProperty(value = "actionsInfo")
+ private List actionsInfo;
+
+ /**
+ * Error details on execution of this job.
+ */
+ @JsonProperty(value = "errorDetails")
+ private List errorDetails;
+
+ /**
+ * Specifies whether the backup item is a Classic or an Azure Resource
+ * Manager VM.
+ */
+ @JsonProperty(value = "virtualMachineVersion")
+ private String virtualMachineVersion;
+
+ /**
+ * Additional information for this job.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureIaaSVMJobExtendedInfo extendedInfo;
+
+ /**
+ * Get time elapsed during the execution of this job.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed during the execution of this job.
+ *
+ * @param duration the duration value to set
+ * @return the AzureIaaSVMJob object itself.
+ */
+ public AzureIaaSVMJob withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @return the actionsInfo value
+ */
+ public List actionsInfo() {
+ return this.actionsInfo;
+ }
+
+ /**
+ * Set gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @param actionsInfo the actionsInfo value to set
+ * @return the AzureIaaSVMJob object itself.
+ */
+ public AzureIaaSVMJob withActionsInfo(List actionsInfo) {
+ this.actionsInfo = actionsInfo;
+ return this;
+ }
+
+ /**
+ * Get error details on execution of this job.
+ *
+ * @return the errorDetails value
+ */
+ public List errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Set error details on execution of this job.
+ *
+ * @param errorDetails the errorDetails value to set
+ * @return the AzureIaaSVMJob object itself.
+ */
+ public AzureIaaSVMJob withErrorDetails(List errorDetails) {
+ this.errorDetails = errorDetails;
+ return this;
+ }
+
+ /**
+ * Get specifies whether the backup item is a Classic or an Azure Resource Manager VM.
+ *
+ * @return the virtualMachineVersion value
+ */
+ public String virtualMachineVersion() {
+ return this.virtualMachineVersion;
+ }
+
+ /**
+ * Set specifies whether the backup item is a Classic or an Azure Resource Manager VM.
+ *
+ * @param virtualMachineVersion the virtualMachineVersion value to set
+ * @return the AzureIaaSVMJob object itself.
+ */
+ public AzureIaaSVMJob withVirtualMachineVersion(String virtualMachineVersion) {
+ this.virtualMachineVersion = virtualMachineVersion;
+ return this;
+ }
+
+ /**
+ * Get additional information for this job.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureIaaSVMJobExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information for this job.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureIaaSVMJob object itself.
+ */
+ public AzureIaaSVMJob withExtendedInfo(AzureIaaSVMJobExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobExtendedInfo.java
new file mode 100644
index 000000000000..2528cbbb9736
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure IaaS VM workload-specific additional information for job.
+ */
+public class AzureIaaSVMJobExtendedInfo {
+ /**
+ * List of tasks associated with this job.
+ */
+ @JsonProperty(value = "tasksList")
+ private List tasksList;
+
+ /**
+ * Job properties.
+ */
+ @JsonProperty(value = "propertyBag")
+ private Map propertyBag;
+
+ /**
+ * Job internal properties.
+ */
+ @JsonProperty(value = "internalPropertyBag")
+ private Map internalPropertyBag;
+
+ /**
+ * Indicates progress of the job. Null if it has not started or completed.
+ */
+ @JsonProperty(value = "progressPercentage")
+ private Double progressPercentage;
+
+ /**
+ * Time remaining for execution of this job.
+ */
+ @JsonProperty(value = "estimatedRemainingDuration")
+ private String estimatedRemainingDuration;
+
+ /**
+ * Non localized error message on job execution.
+ */
+ @JsonProperty(value = "dynamicErrorMessage")
+ private String dynamicErrorMessage;
+
+ /**
+ * Get list of tasks associated with this job.
+ *
+ * @return the tasksList value
+ */
+ public List tasksList() {
+ return this.tasksList;
+ }
+
+ /**
+ * Set list of tasks associated with this job.
+ *
+ * @param tasksList the tasksList value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withTasksList(List tasksList) {
+ this.tasksList = tasksList;
+ return this;
+ }
+
+ /**
+ * Get job properties.
+ *
+ * @return the propertyBag value
+ */
+ public Map propertyBag() {
+ return this.propertyBag;
+ }
+
+ /**
+ * Set job properties.
+ *
+ * @param propertyBag the propertyBag value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withPropertyBag(Map propertyBag) {
+ this.propertyBag = propertyBag;
+ return this;
+ }
+
+ /**
+ * Get job internal properties.
+ *
+ * @return the internalPropertyBag value
+ */
+ public Map internalPropertyBag() {
+ return this.internalPropertyBag;
+ }
+
+ /**
+ * Set job internal properties.
+ *
+ * @param internalPropertyBag the internalPropertyBag value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withInternalPropertyBag(Map internalPropertyBag) {
+ this.internalPropertyBag = internalPropertyBag;
+ return this;
+ }
+
+ /**
+ * Get indicates progress of the job. Null if it has not started or completed.
+ *
+ * @return the progressPercentage value
+ */
+ public Double progressPercentage() {
+ return this.progressPercentage;
+ }
+
+ /**
+ * Set indicates progress of the job. Null if it has not started or completed.
+ *
+ * @param progressPercentage the progressPercentage value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withProgressPercentage(Double progressPercentage) {
+ this.progressPercentage = progressPercentage;
+ return this;
+ }
+
+ /**
+ * Get time remaining for execution of this job.
+ *
+ * @return the estimatedRemainingDuration value
+ */
+ public String estimatedRemainingDuration() {
+ return this.estimatedRemainingDuration;
+ }
+
+ /**
+ * Set time remaining for execution of this job.
+ *
+ * @param estimatedRemainingDuration the estimatedRemainingDuration value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withEstimatedRemainingDuration(String estimatedRemainingDuration) {
+ this.estimatedRemainingDuration = estimatedRemainingDuration;
+ return this;
+ }
+
+ /**
+ * Get non localized error message on job execution.
+ *
+ * @return the dynamicErrorMessage value
+ */
+ public String dynamicErrorMessage() {
+ return this.dynamicErrorMessage;
+ }
+
+ /**
+ * Set non localized error message on job execution.
+ *
+ * @param dynamicErrorMessage the dynamicErrorMessage value to set
+ * @return the AzureIaaSVMJobExtendedInfo object itself.
+ */
+ public AzureIaaSVMJobExtendedInfo withDynamicErrorMessage(String dynamicErrorMessage) {
+ this.dynamicErrorMessage = dynamicErrorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobTaskDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobTaskDetails.java
new file mode 100644
index 000000000000..05e74ba95329
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMJobTaskDetails.java
@@ -0,0 +1,232 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure IaaS VM workload-specific job task details.
+ */
+public class AzureIaaSVMJobTaskDetails {
+ /**
+ * The task display name.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * The start time.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * The end time.
+ */
+ @JsonProperty(value = "endTime")
+ private DateTime endTime;
+
+ /**
+ * The instanceId.
+ */
+ @JsonProperty(value = "instanceId")
+ private String instanceId;
+
+ /**
+ * Time elapsed for task.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * The status.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Progress of the task.
+ */
+ @JsonProperty(value = "progressPercentage")
+ private Double progressPercentage;
+
+ /**
+ * Details about execution of the task.
+ * eg: number of bytes transferred etc.
+ */
+ @JsonProperty(value = "taskExecutionDetails")
+ private String taskExecutionDetails;
+
+ /**
+ * Get the task display name.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the task display name.
+ *
+ * @param taskId the taskId value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withTaskId(String taskId) {
+ this.taskId = taskId;
+ 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 AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails 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 AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get the instanceId.
+ *
+ * @return the instanceId value
+ */
+ public String instanceId() {
+ return this.instanceId;
+ }
+
+ /**
+ * Set the instanceId.
+ *
+ * @param instanceId the instanceId value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withInstanceId(String instanceId) {
+ this.instanceId = instanceId;
+ return this;
+ }
+
+ /**
+ * Get time elapsed for task.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed for task.
+ *
+ * @param duration the duration value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get the status.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status.
+ *
+ * @param status the status value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get progress of the task.
+ *
+ * @return the progressPercentage value
+ */
+ public Double progressPercentage() {
+ return this.progressPercentage;
+ }
+
+ /**
+ * Set progress of the task.
+ *
+ * @param progressPercentage the progressPercentage value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withProgressPercentage(Double progressPercentage) {
+ this.progressPercentage = progressPercentage;
+ return this;
+ }
+
+ /**
+ * Get details about execution of the task.
+ eg: number of bytes transferred etc.
+ *
+ * @return the taskExecutionDetails value
+ */
+ public String taskExecutionDetails() {
+ return this.taskExecutionDetails;
+ }
+
+ /**
+ * Set details about execution of the task.
+ eg: number of bytes transferred etc.
+ *
+ * @param taskExecutionDetails the taskExecutionDetails value to set
+ * @return the AzureIaaSVMJobTaskDetails object itself.
+ */
+ public AzureIaaSVMJobTaskDetails withTaskExecutionDetails(String taskExecutionDetails) {
+ this.taskExecutionDetails = taskExecutionDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItem.java
new file mode 100644
index 000000000000..833f122e2b97
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItem.java
@@ -0,0 +1,347 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import java.util.Map;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * IaaS VM workload-specific backup item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureIaaSVMProtectedItem.class)
+@JsonTypeName("AzureIaaSVMProtectedItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Microsoft.ClassicCompute/virtualMachines", value = AzureIaaSClassicComputeVMProtectedItem.class),
+ @JsonSubTypes.Type(name = "Microsoft.Compute/virtualMachines", value = AzureIaaSComputeVMProtectedItem.class)
+})
+public class AzureIaaSVMProtectedItem extends ProtectedItemInner {
+ /**
+ * Friendly name of the VM represented by this backup item.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Fully qualified ARM ID of the virtual machine represented by this item.
+ */
+ @JsonProperty(value = "virtualMachineId")
+ private String virtualMachineId;
+
+ /**
+ * Backup status of this backup item.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private String protectionStatus;
+
+ /**
+ * Backup state of this backup item. Possible values include: 'Invalid',
+ * 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped',
+ * 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectionState protectionState;
+
+ /**
+ * Health status of protected item. Possible values include: 'Passed',
+ * 'ActionRequired', 'ActionSuggested', 'Invalid'.
+ */
+ @JsonProperty(value = "healthStatus")
+ private HealthStatus healthStatus;
+
+ /**
+ * Health details on this backup item.
+ */
+ @JsonProperty(value = "healthDetails")
+ private List healthDetails;
+
+ /**
+ * Health details of different KPIs.
+ */
+ @JsonProperty(value = "kpisHealths")
+ private Map kpisHealths;
+
+ /**
+ * Last backup operation status.
+ */
+ @JsonProperty(value = "lastBackupStatus")
+ private String lastBackupStatus;
+
+ /**
+ * Timestamp of the last backup operation on this backup item.
+ */
+ @JsonProperty(value = "lastBackupTime")
+ private DateTime lastBackupTime;
+
+ /**
+ * Data ID of the protected item.
+ */
+ @JsonProperty(value = "protectedItemDataId")
+ private String protectedItemDataId;
+
+ /**
+ * Additional information for this backup item.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureIaaSVMProtectedItemExtendedInfo extendedInfo;
+
+ /**
+ * The extendedProperties property.
+ */
+ @JsonProperty(value = "extendedProperties")
+ private ExtendedProperties extendedProperties;
+
+ /**
+ * Get friendly name of the VM represented by this backup item.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the VM represented by this backup item.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the virtual machine represented by this item.
+ *
+ * @return the virtualMachineId value
+ */
+ public String virtualMachineId() {
+ return this.virtualMachineId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the virtual machine represented by this item.
+ *
+ * @param virtualMachineId the virtualMachineId value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withVirtualMachineId(String virtualMachineId) {
+ this.virtualMachineId = virtualMachineId;
+ return this;
+ }
+
+ /**
+ * Get backup status of this backup item.
+ *
+ * @return the protectionStatus value
+ */
+ public String protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set backup status of this backup item.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withProtectionStatus(String protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectionState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withProtectionState(ProtectionState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get health status of protected item. Possible values include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid'.
+ *
+ * @return the healthStatus value
+ */
+ public HealthStatus healthStatus() {
+ return this.healthStatus;
+ }
+
+ /**
+ * Set health status of protected item. Possible values include: 'Passed', 'ActionRequired', 'ActionSuggested', 'Invalid'.
+ *
+ * @param healthStatus the healthStatus value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withHealthStatus(HealthStatus healthStatus) {
+ this.healthStatus = healthStatus;
+ return this;
+ }
+
+ /**
+ * Get health details on this backup item.
+ *
+ * @return the healthDetails value
+ */
+ public List healthDetails() {
+ return this.healthDetails;
+ }
+
+ /**
+ * Set health details on this backup item.
+ *
+ * @param healthDetails the healthDetails value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withHealthDetails(List healthDetails) {
+ this.healthDetails = healthDetails;
+ return this;
+ }
+
+ /**
+ * Get health details of different KPIs.
+ *
+ * @return the kpisHealths value
+ */
+ public Map kpisHealths() {
+ return this.kpisHealths;
+ }
+
+ /**
+ * Set health details of different KPIs.
+ *
+ * @param kpisHealths the kpisHealths value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withKpisHealths(Map kpisHealths) {
+ this.kpisHealths = kpisHealths;
+ return this;
+ }
+
+ /**
+ * Get last backup operation status.
+ *
+ * @return the lastBackupStatus value
+ */
+ public String lastBackupStatus() {
+ return this.lastBackupStatus;
+ }
+
+ /**
+ * Set last backup operation status.
+ *
+ * @param lastBackupStatus the lastBackupStatus value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withLastBackupStatus(String lastBackupStatus) {
+ this.lastBackupStatus = lastBackupStatus;
+ return this;
+ }
+
+ /**
+ * Get timestamp of the last backup operation on this backup item.
+ *
+ * @return the lastBackupTime value
+ */
+ public DateTime lastBackupTime() {
+ return this.lastBackupTime;
+ }
+
+ /**
+ * Set timestamp of the last backup operation on this backup item.
+ *
+ * @param lastBackupTime the lastBackupTime value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withLastBackupTime(DateTime lastBackupTime) {
+ this.lastBackupTime = lastBackupTime;
+ return this;
+ }
+
+ /**
+ * Get data ID of the protected item.
+ *
+ * @return the protectedItemDataId value
+ */
+ public String protectedItemDataId() {
+ return this.protectedItemDataId;
+ }
+
+ /**
+ * Set data ID of the protected item.
+ *
+ * @param protectedItemDataId the protectedItemDataId value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withProtectedItemDataId(String protectedItemDataId) {
+ this.protectedItemDataId = protectedItemDataId;
+ return this;
+ }
+
+ /**
+ * Get additional information for this backup item.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureIaaSVMProtectedItemExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information for this backup item.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withExtendedInfo(AzureIaaSVMProtectedItemExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+ /**
+ * Get the extendedProperties value.
+ *
+ * @return the extendedProperties value
+ */
+ public ExtendedProperties extendedProperties() {
+ return this.extendedProperties;
+ }
+
+ /**
+ * Set the extendedProperties value.
+ *
+ * @param extendedProperties the extendedProperties value to set
+ * @return the AzureIaaSVMProtectedItem object itself.
+ */
+ public AzureIaaSVMProtectedItem withExtendedProperties(ExtendedProperties extendedProperties) {
+ this.extendedProperties = extendedProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItemExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItemExtendedInfo.java
new file mode 100644
index 000000000000..ec85d45a774f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectedItemExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information on Azure IaaS VM specific backup item.
+ */
+public class AzureIaaSVMProtectedItemExtendedInfo {
+ /**
+ * The oldest backup copy available for this backup item.
+ */
+ @JsonProperty(value = "oldestRecoveryPoint")
+ private DateTime oldestRecoveryPoint;
+
+ /**
+ * Number of backup copies available for this backup item.
+ */
+ @JsonProperty(value = "recoveryPointCount")
+ private Integer recoveryPointCount;
+
+ /**
+ * Specifies if backup policy associated with the backup item is
+ * inconsistent.
+ */
+ @JsonProperty(value = "policyInconsistent")
+ private Boolean policyInconsistent;
+
+ /**
+ * Get the oldest backup copy available for this backup item.
+ *
+ * @return the oldestRecoveryPoint value
+ */
+ public DateTime oldestRecoveryPoint() {
+ return this.oldestRecoveryPoint;
+ }
+
+ /**
+ * Set the oldest backup copy available for this backup item.
+ *
+ * @param oldestRecoveryPoint the oldestRecoveryPoint value to set
+ * @return the AzureIaaSVMProtectedItemExtendedInfo object itself.
+ */
+ public AzureIaaSVMProtectedItemExtendedInfo withOldestRecoveryPoint(DateTime oldestRecoveryPoint) {
+ this.oldestRecoveryPoint = oldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get number of backup copies available for this backup item.
+ *
+ * @return the recoveryPointCount value
+ */
+ public Integer recoveryPointCount() {
+ return this.recoveryPointCount;
+ }
+
+ /**
+ * Set number of backup copies available for this backup item.
+ *
+ * @param recoveryPointCount the recoveryPointCount value to set
+ * @return the AzureIaaSVMProtectedItemExtendedInfo object itself.
+ */
+ public AzureIaaSVMProtectedItemExtendedInfo withRecoveryPointCount(Integer recoveryPointCount) {
+ this.recoveryPointCount = recoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get specifies if backup policy associated with the backup item is inconsistent.
+ *
+ * @return the policyInconsistent value
+ */
+ public Boolean policyInconsistent() {
+ return this.policyInconsistent;
+ }
+
+ /**
+ * Set specifies if backup policy associated with the backup item is inconsistent.
+ *
+ * @param policyInconsistent the policyInconsistent value to set
+ * @return the AzureIaaSVMProtectedItemExtendedInfo object itself.
+ */
+ public AzureIaaSVMProtectedItemExtendedInfo withPolicyInconsistent(Boolean policyInconsistent) {
+ this.policyInconsistent = policyInconsistent;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectionPolicy.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectionPolicy.java
new file mode 100644
index 000000000000..160049db9cbf
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureIaaSVMProtectionPolicy.java
@@ -0,0 +1,155 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyInner;
+
+/**
+ * IaaS VM workload-specific backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupManagementType", defaultImpl = AzureIaaSVMProtectionPolicy.class)
+@JsonTypeName("AzureIaasVM")
+public class AzureIaaSVMProtectionPolicy extends ProtectionPolicyInner {
+ /**
+ * The instantRPDetails property.
+ */
+ @JsonProperty(value = "instantRPDetails")
+ private InstantRPAdditionalDetails instantRPDetails;
+
+ /**
+ * Backup schedule specified as part of backup policy.
+ */
+ @JsonProperty(value = "schedulePolicy")
+ private SchedulePolicy schedulePolicy;
+
+ /**
+ * Retention policy with the details on backup copy retention ranges.
+ */
+ @JsonProperty(value = "retentionPolicy")
+ private RetentionPolicy retentionPolicy;
+
+ /**
+ * Instant RP retention policy range in days.
+ */
+ @JsonProperty(value = "instantRpRetentionRangeInDays")
+ private Integer instantRpRetentionRangeInDays;
+
+ /**
+ * TimeZone optional input as string. For example: TimeZone = "Pacific
+ * Standard Time".
+ */
+ @JsonProperty(value = "timeZone")
+ private String timeZone;
+
+ /**
+ * Get the instantRPDetails value.
+ *
+ * @return the instantRPDetails value
+ */
+ public InstantRPAdditionalDetails instantRPDetails() {
+ return this.instantRPDetails;
+ }
+
+ /**
+ * Set the instantRPDetails value.
+ *
+ * @param instantRPDetails the instantRPDetails value to set
+ * @return the AzureIaaSVMProtectionPolicy object itself.
+ */
+ public AzureIaaSVMProtectionPolicy withInstantRPDetails(InstantRPAdditionalDetails instantRPDetails) {
+ this.instantRPDetails = instantRPDetails;
+ return this;
+ }
+
+ /**
+ * Get backup schedule specified as part of backup policy.
+ *
+ * @return the schedulePolicy value
+ */
+ public SchedulePolicy schedulePolicy() {
+ return this.schedulePolicy;
+ }
+
+ /**
+ * Set backup schedule specified as part of backup policy.
+ *
+ * @param schedulePolicy the schedulePolicy value to set
+ * @return the AzureIaaSVMProtectionPolicy object itself.
+ */
+ public AzureIaaSVMProtectionPolicy withSchedulePolicy(SchedulePolicy schedulePolicy) {
+ this.schedulePolicy = schedulePolicy;
+ return this;
+ }
+
+ /**
+ * Get retention policy with the details on backup copy retention ranges.
+ *
+ * @return the retentionPolicy value
+ */
+ public RetentionPolicy retentionPolicy() {
+ return this.retentionPolicy;
+ }
+
+ /**
+ * Set retention policy with the details on backup copy retention ranges.
+ *
+ * @param retentionPolicy the retentionPolicy value to set
+ * @return the AzureIaaSVMProtectionPolicy object itself.
+ */
+ public AzureIaaSVMProtectionPolicy withRetentionPolicy(RetentionPolicy retentionPolicy) {
+ this.retentionPolicy = retentionPolicy;
+ return this;
+ }
+
+ /**
+ * Get instant RP retention policy range in days.
+ *
+ * @return the instantRpRetentionRangeInDays value
+ */
+ public Integer instantRpRetentionRangeInDays() {
+ return this.instantRpRetentionRangeInDays;
+ }
+
+ /**
+ * Set instant RP retention policy range in days.
+ *
+ * @param instantRpRetentionRangeInDays the instantRpRetentionRangeInDays value to set
+ * @return the AzureIaaSVMProtectionPolicy object itself.
+ */
+ public AzureIaaSVMProtectionPolicy withInstantRpRetentionRangeInDays(Integer instantRpRetentionRangeInDays) {
+ this.instantRpRetentionRangeInDays = instantRpRetentionRangeInDays;
+ return this;
+ }
+
+ /**
+ * Get timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @return the timeZone value
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Set timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @param timeZone the timeZone value to set
+ * @return the AzureIaaSVMProtectionPolicy object itself.
+ */
+ public AzureIaaSVMProtectionPolicy withTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureRecoveryServiceVaultProtectionIntent.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureRecoveryServiceVaultProtectionIntent.java
new file mode 100644
index 000000000000..75b17686a0ba
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureRecoveryServiceVaultProtectionIntent.java
@@ -0,0 +1,27 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionIntentInner;
+
+/**
+ * Azure Recovery Services Vault specific protection intent item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectionIntentItemType", defaultImpl = AzureRecoveryServiceVaultProtectionIntent.class)
+@JsonTypeName("RecoveryServiceVaultItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadAutoProtectionIntent", value = AzureWorkloadAutoProtectionIntent.class)
+})
+public class AzureRecoveryServiceVaultProtectionIntent extends ProtectionIntentInner {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureResourceProtectionIntent.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureResourceProtectionIntent.java
new file mode 100644
index 000000000000..699cc65ebaed
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureResourceProtectionIntent.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionIntentInner;
+
+/**
+ * IaaS VM specific backup protection intent item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectionIntentItemType", defaultImpl = AzureResourceProtectionIntent.class)
+@JsonTypeName("AzureResourceItem")
+public class AzureResourceProtectionIntent extends ProtectionIntentInner {
+ /**
+ * Friendly name of the VM represented by this backup item.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Get friendly name of the VM represented by this backup item.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the VM represented by this backup item.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the AzureResourceProtectionIntent object itself.
+ */
+ public AzureResourceProtectionIntent withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSQLAGWorkloadContainerProtectionContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSQLAGWorkloadContainerProtectionContainer.java
new file mode 100644
index 000000000000..a0d92b38fefa
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSQLAGWorkloadContainerProtectionContainer.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Container for SQL workloads under SQL Availability Group.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureSQLAGWorkloadContainerProtectionContainer.class)
+@JsonTypeName("SQLAGWorkLoadContainer")
+public class AzureSQLAGWorkloadContainerProtectionContainer extends AzureWorkloadContainer {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlContainer.java
new file mode 100644
index 000000000000..4ed0d858af84
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlContainer.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * Azure Sql workload-specific container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureSqlContainer.class)
+@JsonTypeName("AzureSqlContainer")
+public class AzureSqlContainer extends ProtectionContainerInner {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItem.java
new file mode 100644
index 000000000000..8778153389b2
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItem.java
@@ -0,0 +1,105 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * Azure SQL workload-specific backup item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureSqlProtectedItem.class)
+@JsonTypeName("Microsoft.Sql/servers/databases")
+public class AzureSqlProtectedItem extends ProtectedItemInner {
+ /**
+ * Internal ID of a backup item. Used by Azure SQL Backup engine to contact
+ * Recovery Services.
+ */
+ @JsonProperty(value = "protectedItemDataId")
+ private String protectedItemDataId;
+
+ /**
+ * Backup state of the backed up item. Possible values include: 'Invalid',
+ * 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped',
+ * 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectedItemState protectionState;
+
+ /**
+ * Additional information for this backup item.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureSqlProtectedItemExtendedInfo extendedInfo;
+
+ /**
+ * Get internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.
+ *
+ * @return the protectedItemDataId value
+ */
+ public String protectedItemDataId() {
+ return this.protectedItemDataId;
+ }
+
+ /**
+ * Set internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.
+ *
+ * @param protectedItemDataId the protectedItemDataId value to set
+ * @return the AzureSqlProtectedItem object itself.
+ */
+ public AzureSqlProtectedItem withProtectedItemDataId(String protectedItemDataId) {
+ this.protectedItemDataId = protectedItemDataId;
+ return this;
+ }
+
+ /**
+ * Get backup state of the backed up item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectedItemState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set backup state of the backed up item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the AzureSqlProtectedItem object itself.
+ */
+ public AzureSqlProtectedItem withProtectionState(ProtectedItemState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get additional information for this backup item.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureSqlProtectedItemExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information for this backup item.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureSqlProtectedItem object itself.
+ */
+ public AzureSqlProtectedItem withExtendedInfo(AzureSqlProtectedItemExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItemExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItemExtendedInfo.java
new file mode 100644
index 000000000000..b8fd475d1328
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectedItemExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information on Azure Sql specific protected item.
+ */
+public class AzureSqlProtectedItemExtendedInfo {
+ /**
+ * The oldest backup copy available for this item in the service.
+ */
+ @JsonProperty(value = "oldestRecoveryPoint")
+ private DateTime oldestRecoveryPoint;
+
+ /**
+ * Number of available backup copies associated with this backup item.
+ */
+ @JsonProperty(value = "recoveryPointCount")
+ private Integer recoveryPointCount;
+
+ /**
+ * State of the backup policy associated with this backup item.
+ */
+ @JsonProperty(value = "policyState")
+ private String policyState;
+
+ /**
+ * Get the oldest backup copy available for this item in the service.
+ *
+ * @return the oldestRecoveryPoint value
+ */
+ public DateTime oldestRecoveryPoint() {
+ return this.oldestRecoveryPoint;
+ }
+
+ /**
+ * Set the oldest backup copy available for this item in the service.
+ *
+ * @param oldestRecoveryPoint the oldestRecoveryPoint value to set
+ * @return the AzureSqlProtectedItemExtendedInfo object itself.
+ */
+ public AzureSqlProtectedItemExtendedInfo withOldestRecoveryPoint(DateTime oldestRecoveryPoint) {
+ this.oldestRecoveryPoint = oldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get number of available backup copies associated with this backup item.
+ *
+ * @return the recoveryPointCount value
+ */
+ public Integer recoveryPointCount() {
+ return this.recoveryPointCount;
+ }
+
+ /**
+ * Set number of available backup copies associated with this backup item.
+ *
+ * @param recoveryPointCount the recoveryPointCount value to set
+ * @return the AzureSqlProtectedItemExtendedInfo object itself.
+ */
+ public AzureSqlProtectedItemExtendedInfo withRecoveryPointCount(Integer recoveryPointCount) {
+ this.recoveryPointCount = recoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get state of the backup policy associated with this backup item.
+ *
+ * @return the policyState value
+ */
+ public String policyState() {
+ return this.policyState;
+ }
+
+ /**
+ * Set state of the backup policy associated with this backup item.
+ *
+ * @param policyState the policyState value to set
+ * @return the AzureSqlProtectedItemExtendedInfo object itself.
+ */
+ public AzureSqlProtectedItemExtendedInfo withPolicyState(String policyState) {
+ this.policyState = policyState;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectionPolicy.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectionPolicy.java
new file mode 100644
index 000000000000..b4ca32bd3f9f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureSqlProtectionPolicy.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyInner;
+
+/**
+ * Azure SQL workload-specific backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupManagementType", defaultImpl = AzureSqlProtectionPolicy.class)
+@JsonTypeName("AzureSql")
+public class AzureSqlProtectionPolicy extends ProtectionPolicyInner {
+ /**
+ * Retention policy details.
+ */
+ @JsonProperty(value = "retentionPolicy")
+ private RetentionPolicy retentionPolicy;
+
+ /**
+ * Get retention policy details.
+ *
+ * @return the retentionPolicy value
+ */
+ public RetentionPolicy retentionPolicy() {
+ return this.retentionPolicy;
+ }
+
+ /**
+ * Set retention policy details.
+ *
+ * @param retentionPolicy the retentionPolicy value to set
+ * @return the AzureSqlProtectionPolicy object itself.
+ */
+ public AzureSqlProtectionPolicy withRetentionPolicy(RetentionPolicy retentionPolicy) {
+ this.retentionPolicy = retentionPolicy;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageContainer.java
new file mode 100644
index 000000000000..c3034683270d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageContainer.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * Azure Storage Account workload-specific container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureStorageContainer.class)
+@JsonTypeName("StorageContainer")
+public class AzureStorageContainer extends ProtectionContainerInner {
+ /**
+ * Fully qualified ARM url.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * Storage account version.
+ */
+ @JsonProperty(value = "storageAccountVersion")
+ private String storageAccountVersion;
+
+ /**
+ * Resource group name of Recovery Services Vault.
+ */
+ @JsonProperty(value = "resourceGroup")
+ private String resourceGroup;
+
+ /**
+ * Number of items backed up in this container.
+ */
+ @JsonProperty(value = "protectedItemCount")
+ private Long protectedItemCount;
+
+ /**
+ * Get fully qualified ARM url.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set fully qualified ARM url.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the AzureStorageContainer object itself.
+ */
+ public AzureStorageContainer withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * Get storage account version.
+ *
+ * @return the storageAccountVersion value
+ */
+ public String storageAccountVersion() {
+ return this.storageAccountVersion;
+ }
+
+ /**
+ * Set storage account version.
+ *
+ * @param storageAccountVersion the storageAccountVersion value to set
+ * @return the AzureStorageContainer object itself.
+ */
+ public AzureStorageContainer withStorageAccountVersion(String storageAccountVersion) {
+ this.storageAccountVersion = storageAccountVersion;
+ return this;
+ }
+
+ /**
+ * Get resource group name of Recovery Services Vault.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Set resource group name of Recovery Services Vault.
+ *
+ * @param resourceGroup the resourceGroup value to set
+ * @return the AzureStorageContainer object itself.
+ */
+ public AzureStorageContainer withResourceGroup(String resourceGroup) {
+ this.resourceGroup = resourceGroup;
+ return this;
+ }
+
+ /**
+ * Get number of items backed up in this container.
+ *
+ * @return the protectedItemCount value
+ */
+ public Long protectedItemCount() {
+ return this.protectedItemCount;
+ }
+
+ /**
+ * Set number of items backed up in this container.
+ *
+ * @param protectedItemCount the protectedItemCount value to set
+ * @return the AzureStorageContainer object itself.
+ */
+ public AzureStorageContainer withProtectedItemCount(Long protectedItemCount) {
+ this.protectedItemCount = protectedItemCount;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageErrorInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageErrorInfo.java
new file mode 100644
index 000000000000..c22cffce2759
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageErrorInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure storage specific error information.
+ */
+public class AzureStorageErrorInfo {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode")
+ private Integer errorCode;
+
+ /**
+ * Localized error string.
+ */
+ @JsonProperty(value = "errorString")
+ private String errorString;
+
+ /**
+ * List of localized recommendations for above error code.
+ */
+ @JsonProperty(value = "recommendations")
+ private List recommendations;
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public Integer errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param errorCode the errorCode value to set
+ * @return the AzureStorageErrorInfo object itself.
+ */
+ public AzureStorageErrorInfo withErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get localized error string.
+ *
+ * @return the errorString value
+ */
+ public String errorString() {
+ return this.errorString;
+ }
+
+ /**
+ * Set localized error string.
+ *
+ * @param errorString the errorString value to set
+ * @return the AzureStorageErrorInfo object itself.
+ */
+ public AzureStorageErrorInfo withErrorString(String errorString) {
+ this.errorString = errorString;
+ return this;
+ }
+
+ /**
+ * Get list of localized recommendations for above error code.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+ /**
+ * Set list of localized recommendations for above error code.
+ *
+ * @param recommendations the recommendations value to set
+ * @return the AzureStorageErrorInfo object itself.
+ */
+ public AzureStorageErrorInfo withRecommendations(List recommendations) {
+ this.recommendations = recommendations;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJob.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJob.java
new file mode 100644
index 000000000000..52c3e3d9f59f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJob.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.Period;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobInner;
+
+/**
+ * Azure storage specific job.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "jobType", defaultImpl = AzureStorageJob.class)
+@JsonTypeName("AzureStorageJob")
+public class AzureStorageJob extends JobInner {
+ /**
+ * Time elapsed during the execution of this job.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * Gets or sets the state/actions applicable on this job like cancel/retry.
+ */
+ @JsonProperty(value = "actionsInfo")
+ private List actionsInfo;
+
+ /**
+ * Error details on execution of this job.
+ */
+ @JsonProperty(value = "errorDetails")
+ private List errorDetails;
+
+ /**
+ * Specifies friendly name of the storage account.
+ */
+ @JsonProperty(value = "storageAccountName")
+ private String storageAccountName;
+
+ /**
+ * Specifies whether the Storage account is a Classic or an Azure Resource
+ * Manager Storage account.
+ */
+ @JsonProperty(value = "storageAccountVersion")
+ private String storageAccountVersion;
+
+ /**
+ * Additional information about the job.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureStorageJobExtendedInfo extendedInfo;
+
+ /**
+ * Get time elapsed during the execution of this job.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed during the execution of this job.
+ *
+ * @param duration the duration value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @return the actionsInfo value
+ */
+ public List actionsInfo() {
+ return this.actionsInfo;
+ }
+
+ /**
+ * Set gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @param actionsInfo the actionsInfo value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withActionsInfo(List actionsInfo) {
+ this.actionsInfo = actionsInfo;
+ return this;
+ }
+
+ /**
+ * Get error details on execution of this job.
+ *
+ * @return the errorDetails value
+ */
+ public List errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Set error details on execution of this job.
+ *
+ * @param errorDetails the errorDetails value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withErrorDetails(List errorDetails) {
+ this.errorDetails = errorDetails;
+ return this;
+ }
+
+ /**
+ * Get specifies friendly name of the storage account.
+ *
+ * @return the storageAccountName value
+ */
+ public String storageAccountName() {
+ return this.storageAccountName;
+ }
+
+ /**
+ * Set specifies friendly name of the storage account.
+ *
+ * @param storageAccountName the storageAccountName value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withStorageAccountName(String storageAccountName) {
+ this.storageAccountName = storageAccountName;
+ return this;
+ }
+
+ /**
+ * Get specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.
+ *
+ * @return the storageAccountVersion value
+ */
+ public String storageAccountVersion() {
+ return this.storageAccountVersion;
+ }
+
+ /**
+ * Set specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.
+ *
+ * @param storageAccountVersion the storageAccountVersion value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withStorageAccountVersion(String storageAccountVersion) {
+ this.storageAccountVersion = storageAccountVersion;
+ return this;
+ }
+
+ /**
+ * Get additional information about the job.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureStorageJobExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information about the job.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureStorageJob object itself.
+ */
+ public AzureStorageJob withExtendedInfo(AzureStorageJobExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobExtendedInfo.java
new file mode 100644
index 000000000000..1c4abc920ab8
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure Storage workload-specific additional information for job.
+ */
+public class AzureStorageJobExtendedInfo {
+ /**
+ * List of tasks for this job.
+ */
+ @JsonProperty(value = "tasksList")
+ private List tasksList;
+
+ /**
+ * Job properties.
+ */
+ @JsonProperty(value = "propertyBag")
+ private Map propertyBag;
+
+ /**
+ * Non localized error message on job execution.
+ */
+ @JsonProperty(value = "dynamicErrorMessage")
+ private String dynamicErrorMessage;
+
+ /**
+ * Get list of tasks for this job.
+ *
+ * @return the tasksList value
+ */
+ public List tasksList() {
+ return this.tasksList;
+ }
+
+ /**
+ * Set list of tasks for this job.
+ *
+ * @param tasksList the tasksList value to set
+ * @return the AzureStorageJobExtendedInfo object itself.
+ */
+ public AzureStorageJobExtendedInfo withTasksList(List tasksList) {
+ this.tasksList = tasksList;
+ return this;
+ }
+
+ /**
+ * Get job properties.
+ *
+ * @return the propertyBag value
+ */
+ public Map propertyBag() {
+ return this.propertyBag;
+ }
+
+ /**
+ * Set job properties.
+ *
+ * @param propertyBag the propertyBag value to set
+ * @return the AzureStorageJobExtendedInfo object itself.
+ */
+ public AzureStorageJobExtendedInfo withPropertyBag(Map propertyBag) {
+ this.propertyBag = propertyBag;
+ return this;
+ }
+
+ /**
+ * Get non localized error message on job execution.
+ *
+ * @return the dynamicErrorMessage value
+ */
+ public String dynamicErrorMessage() {
+ return this.dynamicErrorMessage;
+ }
+
+ /**
+ * Set non localized error message on job execution.
+ *
+ * @param dynamicErrorMessage the dynamicErrorMessage value to set
+ * @return the AzureStorageJobExtendedInfo object itself.
+ */
+ public AzureStorageJobExtendedInfo withDynamicErrorMessage(String dynamicErrorMessage) {
+ this.dynamicErrorMessage = dynamicErrorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobTaskDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobTaskDetails.java
new file mode 100644
index 000000000000..b015c5c7d493
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageJobTaskDetails.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure storage workload specific job task details.
+ */
+public class AzureStorageJobTaskDetails {
+ /**
+ * The task display name.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * The status.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Get the task display name.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the task display name.
+ *
+ * @param taskId the taskId value to set
+ * @return the AzureStorageJobTaskDetails object itself.
+ */
+ public AzureStorageJobTaskDetails withTaskId(String taskId) {
+ this.taskId = taskId;
+ return this;
+ }
+
+ /**
+ * Get the status.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status.
+ *
+ * @param status the status value to set
+ * @return the AzureStorageJobTaskDetails object itself.
+ */
+ public AzureStorageJobTaskDetails withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageProtectableContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageProtectableContainer.java
new file mode 100644
index 000000000000..9f9e5791b716
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureStorageProtectableContainer.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectableContainerInner;
+
+/**
+ * Azure Storage-specific protectable containers.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableContainerType", defaultImpl = AzureStorageProtectableContainer.class)
+@JsonTypeName("StorageContainer")
+public class AzureStorageProtectableContainer extends ProtectableContainerInner {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectableContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectableContainer.java
new file mode 100644
index 000000000000..5b3c3e93c7d1
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectableContainer.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectableContainerInner;
+
+/**
+ * Azure workload-specific container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableContainerType", defaultImpl = AzureVMAppContainerProtectableContainer.class)
+@JsonTypeName("VMAppContainer")
+public class AzureVMAppContainerProtectableContainer extends ProtectableContainerInner {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectionContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectionContainer.java
new file mode 100644
index 000000000000..5f9920550031
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMAppContainerProtectionContainer.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Container for SQL workloads under Azure Virtual Machines.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureVMAppContainerProtectionContainer.class)
+@JsonTypeName("VMAppContainer")
+public class AzureVMAppContainerProtectionContainer extends AzureWorkloadContainer {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportRequest.java
new file mode 100644
index 000000000000..162bf9db3f75
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportRequest.java
@@ -0,0 +1,75 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureResource(IaaS VM) Specific feature support request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "featureType", defaultImpl = AzureVMResourceFeatureSupportRequest.class)
+@JsonTypeName("AzureVMResourceBackup")
+public class AzureVMResourceFeatureSupportRequest extends FeatureSupportRequest {
+ /**
+ * Size of the resource: VM size(A/D series etc) in case of IaasVM.
+ */
+ @JsonProperty(value = "vmSize")
+ private String vmSize;
+
+ /**
+ * SKUs (Premium/Managed etc) in case of IaasVM.
+ */
+ @JsonProperty(value = "vmSku")
+ private String vmSku;
+
+ /**
+ * Get size of the resource: VM size(A/D series etc) in case of IaasVM.
+ *
+ * @return the vmSize value
+ */
+ public String vmSize() {
+ return this.vmSize;
+ }
+
+ /**
+ * Set size of the resource: VM size(A/D series etc) in case of IaasVM.
+ *
+ * @param vmSize the vmSize value to set
+ * @return the AzureVMResourceFeatureSupportRequest object itself.
+ */
+ public AzureVMResourceFeatureSupportRequest withVmSize(String vmSize) {
+ this.vmSize = vmSize;
+ return this;
+ }
+
+ /**
+ * Get sKUs (Premium/Managed etc) in case of IaasVM.
+ *
+ * @return the vmSku value
+ */
+ public String vmSku() {
+ return this.vmSku;
+ }
+
+ /**
+ * Set sKUs (Premium/Managed etc) in case of IaasVM.
+ *
+ * @param vmSku the vmSku value to set
+ * @return the AzureVMResourceFeatureSupportRequest object itself.
+ */
+ public AzureVMResourceFeatureSupportRequest withVmSku(String vmSku) {
+ this.vmSku = vmSku;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportResponse.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportResponse.java
new file mode 100644
index 000000000000..0853c8217669
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVMResourceFeatureSupportResponse.java
@@ -0,0 +1,27 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.AzureVMResourceFeatureSupportResponseInner;
+
+/**
+ * Type representing AzureVMResourceFeatureSupportResponse.
+ */
+public interface AzureVMResourceFeatureSupportResponse extends HasInner, HasManager {
+ /**
+ * @return the supportStatus value.
+ */
+ SupportStatus supportStatus();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadItem.java
new file mode 100644
index 000000000000..37c6334e891a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadItem.java
@@ -0,0 +1,162 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Azure VM workload-specific workload item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadItem.class)
+@JsonTypeName("AzureVmWorkloadItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SAPAseDatabase", value = AzureVmWorkloadSAPAseDatabaseWorkloadItem.class),
+ @JsonSubTypes.Type(name = "SAPAseSystem", value = AzureVmWorkloadSAPAseSystemWorkloadItem.class),
+ @JsonSubTypes.Type(name = "SAPHanaDatabase", value = AzureVmWorkloadSAPHanaDatabaseWorkloadItem.class),
+ @JsonSubTypes.Type(name = "SAPHanaSystem", value = AzureVmWorkloadSAPHanaSystemWorkloadItem.class),
+ @JsonSubTypes.Type(name = "SQLDataBase", value = AzureVmWorkloadSQLDatabaseWorkloadItem.class),
+ @JsonSubTypes.Type(name = "SQLInstance", value = AzureVmWorkloadSQLInstanceWorkloadItem.class)
+})
+public class AzureVmWorkloadItem extends WorkloadItem {
+ /**
+ * Name for instance or AG.
+ */
+ @JsonProperty(value = "parentName")
+ private String parentName;
+
+ /**
+ * Host/Cluster Name for instance or AG.
+ */
+ @JsonProperty(value = "serverName")
+ private String serverName;
+
+ /**
+ * Indicates if workload item is auto-protectable.
+ */
+ @JsonProperty(value = "isAutoProtectable")
+ private Boolean isAutoProtectable;
+
+ /**
+ * For instance or AG, indicates number of DB's present.
+ */
+ @JsonProperty(value = "subinquireditemcount")
+ private Integer subinquireditemcount;
+
+ /**
+ * For instance or AG, indicates number of DB's to be protected.
+ */
+ @JsonProperty(value = "subWorkloadItemCount")
+ private Integer subWorkloadItemCount;
+
+ /**
+ * Get name for instance or AG.
+ *
+ * @return the parentName value
+ */
+ public String parentName() {
+ return this.parentName;
+ }
+
+ /**
+ * Set name for instance or AG.
+ *
+ * @param parentName the parentName value to set
+ * @return the AzureVmWorkloadItem object itself.
+ */
+ public AzureVmWorkloadItem withParentName(String parentName) {
+ this.parentName = parentName;
+ return this;
+ }
+
+ /**
+ * Get host/Cluster Name for instance or AG.
+ *
+ * @return the serverName value
+ */
+ public String serverName() {
+ return this.serverName;
+ }
+
+ /**
+ * Set host/Cluster Name for instance or AG.
+ *
+ * @param serverName the serverName value to set
+ * @return the AzureVmWorkloadItem object itself.
+ */
+ public AzureVmWorkloadItem withServerName(String serverName) {
+ this.serverName = serverName;
+ return this;
+ }
+
+ /**
+ * Get indicates if workload item is auto-protectable.
+ *
+ * @return the isAutoProtectable value
+ */
+ public Boolean isAutoProtectable() {
+ return this.isAutoProtectable;
+ }
+
+ /**
+ * Set indicates if workload item is auto-protectable.
+ *
+ * @param isAutoProtectable the isAutoProtectable value to set
+ * @return the AzureVmWorkloadItem object itself.
+ */
+ public AzureVmWorkloadItem withIsAutoProtectable(Boolean isAutoProtectable) {
+ this.isAutoProtectable = isAutoProtectable;
+ return this;
+ }
+
+ /**
+ * Get for instance or AG, indicates number of DB's present.
+ *
+ * @return the subinquireditemcount value
+ */
+ public Integer subinquireditemcount() {
+ return this.subinquireditemcount;
+ }
+
+ /**
+ * Set for instance or AG, indicates number of DB's present.
+ *
+ * @param subinquireditemcount the subinquireditemcount value to set
+ * @return the AzureVmWorkloadItem object itself.
+ */
+ public AzureVmWorkloadItem withSubinquireditemcount(Integer subinquireditemcount) {
+ this.subinquireditemcount = subinquireditemcount;
+ return this;
+ }
+
+ /**
+ * Get for instance or AG, indicates number of DB's to be protected.
+ *
+ * @return the subWorkloadItemCount value
+ */
+ public Integer subWorkloadItemCount() {
+ return this.subWorkloadItemCount;
+ }
+
+ /**
+ * Set for instance or AG, indicates number of DB's to be protected.
+ *
+ * @param subWorkloadItemCount the subWorkloadItemCount value to set
+ * @return the AzureVmWorkloadItem object itself.
+ */
+ public AzureVmWorkloadItem withSubWorkloadItemCount(Integer subWorkloadItemCount) {
+ this.subWorkloadItemCount = subWorkloadItemCount;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectableItem.java
new file mode 100644
index 000000000000..aa9a1b749990
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectableItem.java
@@ -0,0 +1,245 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Azure VM workload-specific protectable item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadProtectableItem.class)
+@JsonTypeName("AzureVmWorkloadProtectableItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SAPAseSystem", value = AzureVmWorkloadSAPAseSystemProtectableItem.class),
+ @JsonSubTypes.Type(name = "SAPHanaDatabase", value = AzureVmWorkloadSAPHanaDatabaseProtectableItem.class),
+ @JsonSubTypes.Type(name = "SAPHanaSystem", value = AzureVmWorkloadSAPHanaSystemProtectableItem.class),
+ @JsonSubTypes.Type(name = "SQLAvailabilityGroupContainer", value = AzureVmWorkloadSQLAvailabilityGroupProtectableItem.class),
+ @JsonSubTypes.Type(name = "SQLDataBase", value = AzureVmWorkloadSQLDatabaseProtectableItem.class),
+ @JsonSubTypes.Type(name = "SQLInstance", value = AzureVmWorkloadSQLInstanceProtectableItem.class)
+})
+public class AzureVmWorkloadProtectableItem extends WorkloadProtectableItem {
+ /**
+ * Name for instance or AG.
+ */
+ @JsonProperty(value = "parentName")
+ private String parentName;
+
+ /**
+ * Parent Unique Name is added to provide the service formatted URI Name of
+ * the Parent
+ * Only Applicable for data bases where the parent would be either Instance
+ * or a SQL AG.
+ */
+ @JsonProperty(value = "parentUniqueName")
+ private String parentUniqueName;
+
+ /**
+ * Host/Cluster Name for instance or AG.
+ */
+ @JsonProperty(value = "serverName")
+ private String serverName;
+
+ /**
+ * Indicates if protectable item is auto-protectable.
+ */
+ @JsonProperty(value = "isAutoProtectable")
+ private Boolean isAutoProtectable;
+
+ /**
+ * Indicates if protectable item is auto-protected.
+ */
+ @JsonProperty(value = "isAutoProtected")
+ private Boolean isAutoProtected;
+
+ /**
+ * For instance or AG, indicates number of DB's present.
+ */
+ @JsonProperty(value = "subinquireditemcount")
+ private Integer subinquireditemcount;
+
+ /**
+ * For instance or AG, indicates number of DB's to be protected.
+ */
+ @JsonProperty(value = "subprotectableitemcount")
+ private Integer subprotectableitemcount;
+
+ /**
+ * Pre-backup validation for protectable objects.
+ */
+ @JsonProperty(value = "prebackupvalidation")
+ private PreBackupValidation prebackupvalidation;
+
+ /**
+ * Get name for instance or AG.
+ *
+ * @return the parentName value
+ */
+ public String parentName() {
+ return this.parentName;
+ }
+
+ /**
+ * Set name for instance or AG.
+ *
+ * @param parentName the parentName value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withParentName(String parentName) {
+ this.parentName = parentName;
+ return this;
+ }
+
+ /**
+ * Get parent Unique Name is added to provide the service formatted URI Name of the Parent
+ Only Applicable for data bases where the parent would be either Instance or a SQL AG.
+ *
+ * @return the parentUniqueName value
+ */
+ public String parentUniqueName() {
+ return this.parentUniqueName;
+ }
+
+ /**
+ * Set parent Unique Name is added to provide the service formatted URI Name of the Parent
+ Only Applicable for data bases where the parent would be either Instance or a SQL AG.
+ *
+ * @param parentUniqueName the parentUniqueName value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withParentUniqueName(String parentUniqueName) {
+ this.parentUniqueName = parentUniqueName;
+ return this;
+ }
+
+ /**
+ * Get host/Cluster Name for instance or AG.
+ *
+ * @return the serverName value
+ */
+ public String serverName() {
+ return this.serverName;
+ }
+
+ /**
+ * Set host/Cluster Name for instance or AG.
+ *
+ * @param serverName the serverName value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withServerName(String serverName) {
+ this.serverName = serverName;
+ return this;
+ }
+
+ /**
+ * Get indicates if protectable item is auto-protectable.
+ *
+ * @return the isAutoProtectable value
+ */
+ public Boolean isAutoProtectable() {
+ return this.isAutoProtectable;
+ }
+
+ /**
+ * Set indicates if protectable item is auto-protectable.
+ *
+ * @param isAutoProtectable the isAutoProtectable value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withIsAutoProtectable(Boolean isAutoProtectable) {
+ this.isAutoProtectable = isAutoProtectable;
+ return this;
+ }
+
+ /**
+ * Get indicates if protectable item is auto-protected.
+ *
+ * @return the isAutoProtected value
+ */
+ public Boolean isAutoProtected() {
+ return this.isAutoProtected;
+ }
+
+ /**
+ * Set indicates if protectable item is auto-protected.
+ *
+ * @param isAutoProtected the isAutoProtected value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withIsAutoProtected(Boolean isAutoProtected) {
+ this.isAutoProtected = isAutoProtected;
+ return this;
+ }
+
+ /**
+ * Get for instance or AG, indicates number of DB's present.
+ *
+ * @return the subinquireditemcount value
+ */
+ public Integer subinquireditemcount() {
+ return this.subinquireditemcount;
+ }
+
+ /**
+ * Set for instance or AG, indicates number of DB's present.
+ *
+ * @param subinquireditemcount the subinquireditemcount value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withSubinquireditemcount(Integer subinquireditemcount) {
+ this.subinquireditemcount = subinquireditemcount;
+ return this;
+ }
+
+ /**
+ * Get for instance or AG, indicates number of DB's to be protected.
+ *
+ * @return the subprotectableitemcount value
+ */
+ public Integer subprotectableitemcount() {
+ return this.subprotectableitemcount;
+ }
+
+ /**
+ * Set for instance or AG, indicates number of DB's to be protected.
+ *
+ * @param subprotectableitemcount the subprotectableitemcount value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withSubprotectableitemcount(Integer subprotectableitemcount) {
+ this.subprotectableitemcount = subprotectableitemcount;
+ return this;
+ }
+
+ /**
+ * Get pre-backup validation for protectable objects.
+ *
+ * @return the prebackupvalidation value
+ */
+ public PreBackupValidation prebackupvalidation() {
+ return this.prebackupvalidation;
+ }
+
+ /**
+ * Set pre-backup validation for protectable objects.
+ *
+ * @param prebackupvalidation the prebackupvalidation value to set
+ * @return the AzureVmWorkloadProtectableItem object itself.
+ */
+ public AzureVmWorkloadProtectableItem withPrebackupvalidation(PreBackupValidation prebackupvalidation) {
+ this.prebackupvalidation = prebackupvalidation;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItem.java
new file mode 100644
index 000000000000..3e200bac3c52
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItem.java
@@ -0,0 +1,376 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+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;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * Azure VM workload-specific protected item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureVmWorkloadProtectedItem.class)
+@JsonTypeName("AzureVmWorkloadProtectedItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureVmWorkloadSAPAseDatabase", value = AzureVmWorkloadSAPAseDatabaseProtectedItem.class),
+ @JsonSubTypes.Type(name = "AzureVmWorkloadSAPHanaDatabase", value = AzureVmWorkloadSAPHanaDatabaseProtectedItem.class),
+ @JsonSubTypes.Type(name = "AzureVmWorkloadSQLDatabase", value = AzureVmWorkloadSQLDatabaseProtectedItem.class)
+})
+public class AzureVmWorkloadProtectedItem extends ProtectedItemInner {
+ /**
+ * Friendly name of the DB represented by this backup item.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Host/Cluster Name for instance or AG.
+ */
+ @JsonProperty(value = "serverName")
+ private String serverName;
+
+ /**
+ * Parent name of the DB such as Instance or Availability Group.
+ */
+ @JsonProperty(value = "parentName")
+ private String parentName;
+
+ /**
+ * Parent type of protected item, example: for a DB, standalone server or
+ * distributed.
+ */
+ @JsonProperty(value = "parentType")
+ private String parentType;
+
+ /**
+ * Backup status of this backup item.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private String protectionStatus;
+
+ /**
+ * Backup state of this backup item. Possible values include: 'Invalid',
+ * 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped',
+ * 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectionState protectionState;
+
+ /**
+ * Last backup operation status. Possible values: Healthy, Unhealthy.
+ * Possible values include: 'Invalid', 'Healthy', 'Unhealthy', 'IRPending'.
+ */
+ @JsonProperty(value = "lastBackupStatus")
+ private LastBackupStatus lastBackupStatus;
+
+ /**
+ * Timestamp of the last backup operation on this backup item.
+ */
+ @JsonProperty(value = "lastBackupTime")
+ private DateTime lastBackupTime;
+
+ /**
+ * Error details in last backup.
+ */
+ @JsonProperty(value = "lastBackupErrorDetail")
+ private ErrorDetail lastBackupErrorDetail;
+
+ /**
+ * Data ID of the protected item.
+ */
+ @JsonProperty(value = "protectedItemDataSourceId")
+ private String protectedItemDataSourceId;
+
+ /**
+ * Health status of the backup item, evaluated based on last heartbeat
+ * received. Possible values include: 'Invalid', 'Healthy', 'Unhealthy',
+ * 'NotReachable', 'IRPending'.
+ */
+ @JsonProperty(value = "protectedItemHealthStatus")
+ private ProtectedItemHealthStatus protectedItemHealthStatus;
+
+ /**
+ * Additional information for this backup item.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureVmWorkloadProtectedItemExtendedInfo extendedInfo;
+
+ /**
+ * Health details of different KPIs.
+ */
+ @JsonProperty(value = "kpisHealths")
+ private Map kpisHealths;
+
+ /**
+ * Get friendly name of the DB represented by this backup item.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the DB represented by this backup item.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get host/Cluster Name for instance or AG.
+ *
+ * @return the serverName value
+ */
+ public String serverName() {
+ return this.serverName;
+ }
+
+ /**
+ * Set host/Cluster Name for instance or AG.
+ *
+ * @param serverName the serverName value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withServerName(String serverName) {
+ this.serverName = serverName;
+ return this;
+ }
+
+ /**
+ * Get parent name of the DB such as Instance or Availability Group.
+ *
+ * @return the parentName value
+ */
+ public String parentName() {
+ return this.parentName;
+ }
+
+ /**
+ * Set parent name of the DB such as Instance or Availability Group.
+ *
+ * @param parentName the parentName value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withParentName(String parentName) {
+ this.parentName = parentName;
+ return this;
+ }
+
+ /**
+ * Get parent type of protected item, example: for a DB, standalone server or distributed.
+ *
+ * @return the parentType value
+ */
+ public String parentType() {
+ return this.parentType;
+ }
+
+ /**
+ * Set parent type of protected item, example: for a DB, standalone server or distributed.
+ *
+ * @param parentType the parentType value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withParentType(String parentType) {
+ this.parentType = parentType;
+ return this;
+ }
+
+ /**
+ * Get backup status of this backup item.
+ *
+ * @return the protectionStatus value
+ */
+ public String protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set backup status of this backup item.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withProtectionStatus(String protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectionState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withProtectionState(ProtectionState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'Invalid', 'Healthy', 'Unhealthy', 'IRPending'.
+ *
+ * @return the lastBackupStatus value
+ */
+ public LastBackupStatus lastBackupStatus() {
+ return this.lastBackupStatus;
+ }
+
+ /**
+ * Set last backup operation status. Possible values: Healthy, Unhealthy. Possible values include: 'Invalid', 'Healthy', 'Unhealthy', 'IRPending'.
+ *
+ * @param lastBackupStatus the lastBackupStatus value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withLastBackupStatus(LastBackupStatus lastBackupStatus) {
+ this.lastBackupStatus = lastBackupStatus;
+ return this;
+ }
+
+ /**
+ * Get timestamp of the last backup operation on this backup item.
+ *
+ * @return the lastBackupTime value
+ */
+ public DateTime lastBackupTime() {
+ return this.lastBackupTime;
+ }
+
+ /**
+ * Set timestamp of the last backup operation on this backup item.
+ *
+ * @param lastBackupTime the lastBackupTime value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withLastBackupTime(DateTime lastBackupTime) {
+ this.lastBackupTime = lastBackupTime;
+ return this;
+ }
+
+ /**
+ * Get error details in last backup.
+ *
+ * @return the lastBackupErrorDetail value
+ */
+ public ErrorDetail lastBackupErrorDetail() {
+ return this.lastBackupErrorDetail;
+ }
+
+ /**
+ * Set error details in last backup.
+ *
+ * @param lastBackupErrorDetail the lastBackupErrorDetail value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withLastBackupErrorDetail(ErrorDetail lastBackupErrorDetail) {
+ this.lastBackupErrorDetail = lastBackupErrorDetail;
+ return this;
+ }
+
+ /**
+ * Get data ID of the protected item.
+ *
+ * @return the protectedItemDataSourceId value
+ */
+ public String protectedItemDataSourceId() {
+ return this.protectedItemDataSourceId;
+ }
+
+ /**
+ * Set data ID of the protected item.
+ *
+ * @param protectedItemDataSourceId the protectedItemDataSourceId value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withProtectedItemDataSourceId(String protectedItemDataSourceId) {
+ this.protectedItemDataSourceId = protectedItemDataSourceId;
+ return this;
+ }
+
+ /**
+ * Get health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending'.
+ *
+ * @return the protectedItemHealthStatus value
+ */
+ public ProtectedItemHealthStatus protectedItemHealthStatus() {
+ return this.protectedItemHealthStatus;
+ }
+
+ /**
+ * Set health status of the backup item, evaluated based on last heartbeat received. Possible values include: 'Invalid', 'Healthy', 'Unhealthy', 'NotReachable', 'IRPending'.
+ *
+ * @param protectedItemHealthStatus the protectedItemHealthStatus value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withProtectedItemHealthStatus(ProtectedItemHealthStatus protectedItemHealthStatus) {
+ this.protectedItemHealthStatus = protectedItemHealthStatus;
+ return this;
+ }
+
+ /**
+ * Get additional information for this backup item.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureVmWorkloadProtectedItemExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information for this backup item.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withExtendedInfo(AzureVmWorkloadProtectedItemExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+ /**
+ * Get health details of different KPIs.
+ *
+ * @return the kpisHealths value
+ */
+ public Map kpisHealths() {
+ return this.kpisHealths;
+ }
+
+ /**
+ * Set health details of different KPIs.
+ *
+ * @param kpisHealths the kpisHealths value to set
+ * @return the AzureVmWorkloadProtectedItem object itself.
+ */
+ public AzureVmWorkloadProtectedItem withKpisHealths(Map kpisHealths) {
+ this.kpisHealths = kpisHealths;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItemExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItemExtendedInfo.java
new file mode 100644
index 000000000000..59573c4b62a9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectedItemExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information on Azure Workload for SQL specific backup item.
+ */
+public class AzureVmWorkloadProtectedItemExtendedInfo {
+ /**
+ * The oldest backup copy available for this backup item.
+ */
+ @JsonProperty(value = "oldestRecoveryPoint")
+ private DateTime oldestRecoveryPoint;
+
+ /**
+ * Number of backup copies available for this backup item.
+ */
+ @JsonProperty(value = "recoveryPointCount")
+ private Integer recoveryPointCount;
+
+ /**
+ * Indicates consistency of policy object and policy applied to this backup
+ * item.
+ */
+ @JsonProperty(value = "policyState")
+ private String policyState;
+
+ /**
+ * Get the oldest backup copy available for this backup item.
+ *
+ * @return the oldestRecoveryPoint value
+ */
+ public DateTime oldestRecoveryPoint() {
+ return this.oldestRecoveryPoint;
+ }
+
+ /**
+ * Set the oldest backup copy available for this backup item.
+ *
+ * @param oldestRecoveryPoint the oldestRecoveryPoint value to set
+ * @return the AzureVmWorkloadProtectedItemExtendedInfo object itself.
+ */
+ public AzureVmWorkloadProtectedItemExtendedInfo withOldestRecoveryPoint(DateTime oldestRecoveryPoint) {
+ this.oldestRecoveryPoint = oldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get number of backup copies available for this backup item.
+ *
+ * @return the recoveryPointCount value
+ */
+ public Integer recoveryPointCount() {
+ return this.recoveryPointCount;
+ }
+
+ /**
+ * Set number of backup copies available for this backup item.
+ *
+ * @param recoveryPointCount the recoveryPointCount value to set
+ * @return the AzureVmWorkloadProtectedItemExtendedInfo object itself.
+ */
+ public AzureVmWorkloadProtectedItemExtendedInfo withRecoveryPointCount(Integer recoveryPointCount) {
+ this.recoveryPointCount = recoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @return the policyState value
+ */
+ public String policyState() {
+ return this.policyState;
+ }
+
+ /**
+ * Set indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @param policyState the policyState value to set
+ * @return the AzureVmWorkloadProtectedItemExtendedInfo object itself.
+ */
+ public AzureVmWorkloadProtectedItemExtendedInfo withPolicyState(String policyState) {
+ this.policyState = policyState;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectionPolicy.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectionPolicy.java
new file mode 100644
index 000000000000..297534c8586c
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadProtectionPolicy.java
@@ -0,0 +1,132 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyInner;
+
+/**
+ * Azure VM (Mercury) workload-specific backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupManagementType", defaultImpl = AzureVmWorkloadProtectionPolicy.class)
+@JsonTypeName("AzureWorkload")
+public class AzureVmWorkloadProtectionPolicy extends ProtectionPolicyInner {
+ /**
+ * Type of workload for the backup management. Possible values include:
+ * 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange',
+ * 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource',
+ * 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workLoadType")
+ private WorkloadType workLoadType;
+
+ /**
+ * Common settings for the backup management.
+ */
+ @JsonProperty(value = "settings")
+ private Settings settings;
+
+ /**
+ * List of sub-protection policies which includes schedule and retention.
+ */
+ @JsonProperty(value = "subProtectionPolicy")
+ private List subProtectionPolicy;
+
+ /**
+ * Fix the policy inconsistency.
+ */
+ @JsonProperty(value = "makePolicyConsistent")
+ private Boolean makePolicyConsistent;
+
+ /**
+ * Get type of workload for the backup management. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workLoadType value
+ */
+ public WorkloadType workLoadType() {
+ return this.workLoadType;
+ }
+
+ /**
+ * Set type of workload for the backup management. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workLoadType the workLoadType value to set
+ * @return the AzureVmWorkloadProtectionPolicy object itself.
+ */
+ public AzureVmWorkloadProtectionPolicy withWorkLoadType(WorkloadType workLoadType) {
+ this.workLoadType = workLoadType;
+ return this;
+ }
+
+ /**
+ * Get common settings for the backup management.
+ *
+ * @return the settings value
+ */
+ public Settings settings() {
+ return this.settings;
+ }
+
+ /**
+ * Set common settings for the backup management.
+ *
+ * @param settings the settings value to set
+ * @return the AzureVmWorkloadProtectionPolicy object itself.
+ */
+ public AzureVmWorkloadProtectionPolicy withSettings(Settings settings) {
+ this.settings = settings;
+ return this;
+ }
+
+ /**
+ * Get list of sub-protection policies which includes schedule and retention.
+ *
+ * @return the subProtectionPolicy value
+ */
+ public List subProtectionPolicy() {
+ return this.subProtectionPolicy;
+ }
+
+ /**
+ * Set list of sub-protection policies which includes schedule and retention.
+ *
+ * @param subProtectionPolicy the subProtectionPolicy value to set
+ * @return the AzureVmWorkloadProtectionPolicy object itself.
+ */
+ public AzureVmWorkloadProtectionPolicy withSubProtectionPolicy(List subProtectionPolicy) {
+ this.subProtectionPolicy = subProtectionPolicy;
+ return this;
+ }
+
+ /**
+ * Get fix the policy inconsistency.
+ *
+ * @return the makePolicyConsistent value
+ */
+ public Boolean makePolicyConsistent() {
+ return this.makePolicyConsistent;
+ }
+
+ /**
+ * Set fix the policy inconsistency.
+ *
+ * @param makePolicyConsistent the makePolicyConsistent value to set
+ * @return the AzureVmWorkloadProtectionPolicy object itself.
+ */
+ public AzureVmWorkloadProtectionPolicy withMakePolicyConsistent(Boolean makePolicyConsistent) {
+ this.makePolicyConsistent = makePolicyConsistent;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseProtectedItem.java
new file mode 100644
index 000000000000..19853016f64d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseProtectedItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protected item representing SAP ASE Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureVmWorkloadSAPAseDatabaseProtectedItem.class)
+@JsonTypeName("AzureVmWorkloadSAPAseDatabase")
+public class AzureVmWorkloadSAPAseDatabaseProtectedItem extends AzureVmWorkloadProtectedItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseWorkloadItem.java
new file mode 100644
index 000000000000..346fb11e1b6d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseDatabaseWorkloadItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SAP ASE Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSAPAseDatabaseWorkloadItem.class)
+@JsonTypeName("SAPAseDatabase")
+public class AzureVmWorkloadSAPAseDatabaseWorkloadItem extends AzureVmWorkloadItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemProtectableItem.java
new file mode 100644
index 000000000000..84b9d3e8c80f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SAP ASE System.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSAPAseSystemProtectableItem.class)
+@JsonTypeName("SAPAseSystem")
+public class AzureVmWorkloadSAPAseSystemProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemWorkloadItem.java
new file mode 100644
index 000000000000..f5cb6232d85d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPAseSystemWorkloadItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SAP ASE System.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSAPAseSystemWorkloadItem.class)
+@JsonTypeName("SAPAseSystem")
+public class AzureVmWorkloadSAPAseSystemWorkloadItem extends AzureVmWorkloadItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectableItem.java
new file mode 100644
index 000000000000..7683ce1173a3
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SAP HANA Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSAPHanaDatabaseProtectableItem.class)
+@JsonTypeName("SAPHanaDatabase")
+public class AzureVmWorkloadSAPHanaDatabaseProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectedItem.java
new file mode 100644
index 000000000000..75d8f6c30c5e
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseProtectedItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protected item representing SAP HANA Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureVmWorkloadSAPHanaDatabaseProtectedItem.class)
+@JsonTypeName("AzureVmWorkloadSAPHanaDatabase")
+public class AzureVmWorkloadSAPHanaDatabaseProtectedItem extends AzureVmWorkloadProtectedItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseWorkloadItem.java
new file mode 100644
index 000000000000..67e1e01bb1b0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaDatabaseWorkloadItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SAP HANA Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSAPHanaDatabaseWorkloadItem.class)
+@JsonTypeName("SAPHanaDatabase")
+public class AzureVmWorkloadSAPHanaDatabaseWorkloadItem extends AzureVmWorkloadItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemProtectableItem.java
new file mode 100644
index 000000000000..502dfd533a41
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SAP HANA System.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSAPHanaSystemProtectableItem.class)
+@JsonTypeName("SAPHanaSystem")
+public class AzureVmWorkloadSAPHanaSystemProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemWorkloadItem.java
new file mode 100644
index 000000000000..59c66fc04c6a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSAPHanaSystemWorkloadItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SAP HANA System.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSAPHanaSystemWorkloadItem.class)
+@JsonTypeName("SAPHanaSystem")
+public class AzureVmWorkloadSAPHanaSystemWorkloadItem extends AzureVmWorkloadItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLAvailabilityGroupProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLAvailabilityGroupProtectableItem.java
new file mode 100644
index 000000000000..8aa0faa6cc1d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLAvailabilityGroupProtectableItem.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SQL Availability
+ * Group.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSQLAvailabilityGroupProtectableItem.class)
+@JsonTypeName("SQLAvailabilityGroupContainer")
+public class AzureVmWorkloadSQLAvailabilityGroupProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectableItem.java
new file mode 100644
index 000000000000..d8cc1e4c756a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SQL Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSQLDatabaseProtectableItem.class)
+@JsonTypeName("SQLDataBase")
+public class AzureVmWorkloadSQLDatabaseProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectedItem.java
new file mode 100644
index 000000000000..b8b4ab16f11d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseProtectedItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protected item representing SQL Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = AzureVmWorkloadSQLDatabaseProtectedItem.class)
+@JsonTypeName("AzureVmWorkloadSQLDatabase")
+public class AzureVmWorkloadSQLDatabaseProtectedItem extends AzureVmWorkloadProtectedItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseWorkloadItem.java
new file mode 100644
index 000000000000..ff589ee830b0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLDatabaseWorkloadItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SQL Database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSQLDatabaseWorkloadItem.class)
+@JsonTypeName("SQLDataBase")
+public class AzureVmWorkloadSQLDatabaseWorkloadItem extends AzureVmWorkloadItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceProtectableItem.java
new file mode 100644
index 000000000000..e481474ca082
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceProtectableItem.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific protectable item representing SQL Instance.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = AzureVmWorkloadSQLInstanceProtectableItem.class)
+@JsonTypeName("SQLInstance")
+public class AzureVmWorkloadSQLInstanceProtectableItem extends AzureVmWorkloadProtectableItem {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceWorkloadItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceWorkloadItem.java
new file mode 100644
index 000000000000..99af56b132ca
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureVmWorkloadSQLInstanceWorkloadItem.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure VM workload-specific workload item representing SQL Instance.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "workloadItemType", defaultImpl = AzureVmWorkloadSQLInstanceWorkloadItem.class)
+@JsonTypeName("SQLInstance")
+public class AzureVmWorkloadSQLInstanceWorkloadItem extends AzureVmWorkloadItem {
+ /**
+ * Data Directory Paths for default directories.
+ */
+ @JsonProperty(value = "dataDirectoryPaths")
+ private List dataDirectoryPaths;
+
+ /**
+ * Get data Directory Paths for default directories.
+ *
+ * @return the dataDirectoryPaths value
+ */
+ public List dataDirectoryPaths() {
+ return this.dataDirectoryPaths;
+ }
+
+ /**
+ * Set data Directory Paths for default directories.
+ *
+ * @param dataDirectoryPaths the dataDirectoryPaths value to set
+ * @return the AzureVmWorkloadSQLInstanceWorkloadItem object itself.
+ */
+ public AzureVmWorkloadSQLInstanceWorkloadItem withDataDirectoryPaths(List dataDirectoryPaths) {
+ this.dataDirectoryPaths = dataDirectoryPaths;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadAutoProtectionIntent.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadAutoProtectionIntent.java
new file mode 100644
index 000000000000..12e3860450b8
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadAutoProtectionIntent.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Azure Recovery Services Vault specific protection intent item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectionIntentItemType", defaultImpl = AzureWorkloadAutoProtectionIntent.class)
+@JsonTypeName("AzureWorkloadAutoProtectionIntent")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadSQLAutoProtectionIntent", value = AzureWorkloadSQLAutoProtectionIntent.class)
+})
+public class AzureWorkloadAutoProtectionIntent extends AzureRecoveryServiceVaultProtectionIntent {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadBackupRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadBackupRequest.java
new file mode 100644
index 000000000000..ce1685e69b0a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadBackupRequest.java
@@ -0,0 +1,104 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureWorkload workload-specific backup request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadBackupRequest.class)
+@JsonTypeName("AzureWorkloadBackupRequest")
+public class AzureWorkloadBackupRequest extends BackupRequest {
+ /**
+ * Type of backup, viz. Full, Differential, Log or CopyOnlyFull. Possible
+ * values include: 'Invalid', 'Full', 'Differential', 'Log',
+ * 'CopyOnlyFull'.
+ */
+ @JsonProperty(value = "backupType")
+ private BackupType backupType;
+
+ /**
+ * Bool for Compression setting.
+ */
+ @JsonProperty(value = "enableCompression")
+ private Boolean enableCompression;
+
+ /**
+ * Backup copy will expire after the time specified (UTC).
+ */
+ @JsonProperty(value = "recoveryPointExpiryTimeInUTC")
+ private DateTime recoveryPointExpiryTimeInUTC;
+
+ /**
+ * Get type of backup, viz. Full, Differential, Log or CopyOnlyFull. Possible values include: 'Invalid', 'Full', 'Differential', 'Log', 'CopyOnlyFull'.
+ *
+ * @return the backupType value
+ */
+ public BackupType backupType() {
+ return this.backupType;
+ }
+
+ /**
+ * Set type of backup, viz. Full, Differential, Log or CopyOnlyFull. Possible values include: 'Invalid', 'Full', 'Differential', 'Log', 'CopyOnlyFull'.
+ *
+ * @param backupType the backupType value to set
+ * @return the AzureWorkloadBackupRequest object itself.
+ */
+ public AzureWorkloadBackupRequest withBackupType(BackupType backupType) {
+ this.backupType = backupType;
+ return this;
+ }
+
+ /**
+ * Get bool for Compression setting.
+ *
+ * @return the enableCompression value
+ */
+ public Boolean enableCompression() {
+ return this.enableCompression;
+ }
+
+ /**
+ * Set bool for Compression setting.
+ *
+ * @param enableCompression the enableCompression value to set
+ * @return the AzureWorkloadBackupRequest object itself.
+ */
+ public AzureWorkloadBackupRequest withEnableCompression(Boolean enableCompression) {
+ this.enableCompression = enableCompression;
+ return this;
+ }
+
+ /**
+ * Get backup copy will expire after the time specified (UTC).
+ *
+ * @return the recoveryPointExpiryTimeInUTC value
+ */
+ public DateTime recoveryPointExpiryTimeInUTC() {
+ return this.recoveryPointExpiryTimeInUTC;
+ }
+
+ /**
+ * Set backup copy will expire after the time specified (UTC).
+ *
+ * @param recoveryPointExpiryTimeInUTC the recoveryPointExpiryTimeInUTC value to set
+ * @return the AzureWorkloadBackupRequest object itself.
+ */
+ public AzureWorkloadBackupRequest withRecoveryPointExpiryTimeInUTC(DateTime recoveryPointExpiryTimeInUTC) {
+ this.recoveryPointExpiryTimeInUTC = recoveryPointExpiryTimeInUTC;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainer.java
new file mode 100644
index 000000000000..e8ef14287725
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainer.java
@@ -0,0 +1,165 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * Container for the workloads running inside Azure Compute or Classic Compute.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = AzureWorkloadContainer.class)
+@JsonTypeName("AzureWorkloadContainer")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "SQLAGWorkLoadContainer", value = AzureSQLAGWorkloadContainerProtectionContainer.class),
+ @JsonSubTypes.Type(name = "VMAppContainer", value = AzureVMAppContainerProtectionContainer.class)
+})
+public class AzureWorkloadContainer extends ProtectionContainerInner {
+ /**
+ * ARM ID of the virtual machine represented by this Azure Workload
+ * Container.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * Time stamp when this container was updated.
+ */
+ @JsonProperty(value = "lastUpdatedTime")
+ private DateTime lastUpdatedTime;
+
+ /**
+ * Additional details of a workload container.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureWorkloadContainerExtendedInfo extendedInfo;
+
+ /**
+ * Workload type for which registration was sent. Possible values include:
+ * 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange',
+ * 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource',
+ * 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadType")
+ private WorkloadType workloadType;
+
+ /**
+ * Re-Do Operation. Possible values include: 'Invalid', 'Register',
+ * 'Reregister'.
+ */
+ @JsonProperty(value = "operationType")
+ private OperationType operationType;
+
+ /**
+ * Get aRM ID of the virtual machine represented by this Azure Workload Container.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set aRM ID of the virtual machine represented by this Azure Workload Container.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the AzureWorkloadContainer object itself.
+ */
+ public AzureWorkloadContainer withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * Get time stamp when this container was updated.
+ *
+ * @return the lastUpdatedTime value
+ */
+ public DateTime lastUpdatedTime() {
+ return this.lastUpdatedTime;
+ }
+
+ /**
+ * Set time stamp when this container was updated.
+ *
+ * @param lastUpdatedTime the lastUpdatedTime value to set
+ * @return the AzureWorkloadContainer object itself.
+ */
+ public AzureWorkloadContainer withLastUpdatedTime(DateTime lastUpdatedTime) {
+ this.lastUpdatedTime = lastUpdatedTime;
+ return this;
+ }
+
+ /**
+ * Get additional details of a workload container.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureWorkloadContainerExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional details of a workload container.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureWorkloadContainer object itself.
+ */
+ public AzureWorkloadContainer withExtendedInfo(AzureWorkloadContainerExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+ /**
+ * Get workload type for which registration was sent. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workloadType value
+ */
+ public WorkloadType workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set workload type for which registration was sent. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the AzureWorkloadContainer object itself.
+ */
+ public AzureWorkloadContainer withWorkloadType(WorkloadType workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+ /**
+ * Get re-Do Operation. Possible values include: 'Invalid', 'Register', 'Reregister'.
+ *
+ * @return the operationType value
+ */
+ public OperationType operationType() {
+ return this.operationType;
+ }
+
+ /**
+ * Set re-Do Operation. Possible values include: 'Invalid', 'Register', 'Reregister'.
+ *
+ * @param operationType the operationType value to set
+ * @return the AzureWorkloadContainer object itself.
+ */
+ public AzureWorkloadContainer withOperationType(OperationType operationType) {
+ this.operationType = operationType;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainerExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainerExtendedInfo.java
new file mode 100644
index 000000000000..839e9911c85b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadContainerExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Extended information of the container.
+ */
+public class AzureWorkloadContainerExtendedInfo {
+ /**
+ * Host Os Name in case of Stand Alone and Cluster Name in case of
+ * distributed container.
+ */
+ @JsonProperty(value = "hostServerName")
+ private String hostServerName;
+
+ /**
+ * Inquiry Status for the container.
+ */
+ @JsonProperty(value = "inquiryInfo")
+ private InquiryInfo inquiryInfo;
+
+ /**
+ * List of the nodes in case of distributed container.
+ */
+ @JsonProperty(value = "nodesList")
+ private List nodesList;
+
+ /**
+ * Get host Os Name in case of Stand Alone and Cluster Name in case of distributed container.
+ *
+ * @return the hostServerName value
+ */
+ public String hostServerName() {
+ return this.hostServerName;
+ }
+
+ /**
+ * Set host Os Name in case of Stand Alone and Cluster Name in case of distributed container.
+ *
+ * @param hostServerName the hostServerName value to set
+ * @return the AzureWorkloadContainerExtendedInfo object itself.
+ */
+ public AzureWorkloadContainerExtendedInfo withHostServerName(String hostServerName) {
+ this.hostServerName = hostServerName;
+ return this;
+ }
+
+ /**
+ * Get inquiry Status for the container.
+ *
+ * @return the inquiryInfo value
+ */
+ public InquiryInfo inquiryInfo() {
+ return this.inquiryInfo;
+ }
+
+ /**
+ * Set inquiry Status for the container.
+ *
+ * @param inquiryInfo the inquiryInfo value to set
+ * @return the AzureWorkloadContainerExtendedInfo object itself.
+ */
+ public AzureWorkloadContainerExtendedInfo withInquiryInfo(InquiryInfo inquiryInfo) {
+ this.inquiryInfo = inquiryInfo;
+ return this;
+ }
+
+ /**
+ * Get list of the nodes in case of distributed container.
+ *
+ * @return the nodesList value
+ */
+ public List nodesList() {
+ return this.nodesList;
+ }
+
+ /**
+ * Set list of the nodes in case of distributed container.
+ *
+ * @param nodesList the nodesList value to set
+ * @return the AzureWorkloadContainerExtendedInfo object itself.
+ */
+ public AzureWorkloadContainerExtendedInfo withNodesList(List nodesList) {
+ this.nodesList = nodesList;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadErrorInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadErrorInfo.java
new file mode 100644
index 000000000000..d52a11d1c9b7
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadErrorInfo.java
@@ -0,0 +1,150 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure storage specific error information.
+ */
+public class AzureWorkloadErrorInfo {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode")
+ private Integer errorCode;
+
+ /**
+ * Localized error string.
+ */
+ @JsonProperty(value = "errorString")
+ private String errorString;
+
+ /**
+ * Title: Typically, the entity that the error pertains to.
+ */
+ @JsonProperty(value = "errorTitle")
+ private String errorTitle;
+
+ /**
+ * List of localized recommendations for above error code.
+ */
+ @JsonProperty(value = "recommendations")
+ private List recommendations;
+
+ /**
+ * Additional details for above error code.
+ */
+ @JsonProperty(value = "additionalDetails")
+ private String additionalDetails;
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public Integer errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param errorCode the errorCode value to set
+ * @return the AzureWorkloadErrorInfo object itself.
+ */
+ public AzureWorkloadErrorInfo withErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get localized error string.
+ *
+ * @return the errorString value
+ */
+ public String errorString() {
+ return this.errorString;
+ }
+
+ /**
+ * Set localized error string.
+ *
+ * @param errorString the errorString value to set
+ * @return the AzureWorkloadErrorInfo object itself.
+ */
+ public AzureWorkloadErrorInfo withErrorString(String errorString) {
+ this.errorString = errorString;
+ return this;
+ }
+
+ /**
+ * Get title: Typically, the entity that the error pertains to.
+ *
+ * @return the errorTitle value
+ */
+ public String errorTitle() {
+ return this.errorTitle;
+ }
+
+ /**
+ * Set title: Typically, the entity that the error pertains to.
+ *
+ * @param errorTitle the errorTitle value to set
+ * @return the AzureWorkloadErrorInfo object itself.
+ */
+ public AzureWorkloadErrorInfo withErrorTitle(String errorTitle) {
+ this.errorTitle = errorTitle;
+ return this;
+ }
+
+ /**
+ * Get list of localized recommendations for above error code.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+ /**
+ * Set list of localized recommendations for above error code.
+ *
+ * @param recommendations the recommendations value to set
+ * @return the AzureWorkloadErrorInfo object itself.
+ */
+ public AzureWorkloadErrorInfo withRecommendations(List recommendations) {
+ this.recommendations = recommendations;
+ return this;
+ }
+
+ /**
+ * Get additional details for above error code.
+ *
+ * @return the additionalDetails value
+ */
+ public String additionalDetails() {
+ return this.additionalDetails;
+ }
+
+ /**
+ * Set additional details for above error code.
+ *
+ * @param additionalDetails the additionalDetails value to set
+ * @return the AzureWorkloadErrorInfo object itself.
+ */
+ public AzureWorkloadErrorInfo withAdditionalDetails(String additionalDetails) {
+ this.additionalDetails = additionalDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJob.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJob.java
new file mode 100644
index 000000000000..89a6b1f203ba
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJob.java
@@ -0,0 +1,156 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.Period;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobInner;
+
+/**
+ * Azure storage specific job.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "jobType", defaultImpl = AzureWorkloadJob.class)
+@JsonTypeName("AzureWorkloadJob")
+public class AzureWorkloadJob extends JobInner {
+ /**
+ * Workload type of the job.
+ */
+ @JsonProperty(value = "workloadType")
+ private String workloadType;
+
+ /**
+ * Time elapsed during the execution of this job.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * Gets or sets the state/actions applicable on this job like cancel/retry.
+ */
+ @JsonProperty(value = "actionsInfo")
+ private List actionsInfo;
+
+ /**
+ * Error details on execution of this job.
+ */
+ @JsonProperty(value = "errorDetails")
+ private List errorDetails;
+
+ /**
+ * Additional information about the job.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureWorkloadJobExtendedInfo extendedInfo;
+
+ /**
+ * Get workload type of the job.
+ *
+ * @return the workloadType value
+ */
+ public String workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set workload type of the job.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the AzureWorkloadJob object itself.
+ */
+ public AzureWorkloadJob withWorkloadType(String workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+ /**
+ * Get time elapsed during the execution of this job.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed during the execution of this job.
+ *
+ * @param duration the duration value to set
+ * @return the AzureWorkloadJob object itself.
+ */
+ public AzureWorkloadJob withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @return the actionsInfo value
+ */
+ public List actionsInfo() {
+ return this.actionsInfo;
+ }
+
+ /**
+ * Set gets or sets the state/actions applicable on this job like cancel/retry.
+ *
+ * @param actionsInfo the actionsInfo value to set
+ * @return the AzureWorkloadJob object itself.
+ */
+ public AzureWorkloadJob withActionsInfo(List actionsInfo) {
+ this.actionsInfo = actionsInfo;
+ return this;
+ }
+
+ /**
+ * Get error details on execution of this job.
+ *
+ * @return the errorDetails value
+ */
+ public List errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Set error details on execution of this job.
+ *
+ * @param errorDetails the errorDetails value to set
+ * @return the AzureWorkloadJob object itself.
+ */
+ public AzureWorkloadJob withErrorDetails(List errorDetails) {
+ this.errorDetails = errorDetails;
+ return this;
+ }
+
+ /**
+ * Get additional information about the job.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureWorkloadJobExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information about the job.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureWorkloadJob object itself.
+ */
+ public AzureWorkloadJob withExtendedInfo(AzureWorkloadJobExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobExtendedInfo.java
new file mode 100644
index 000000000000..bf782548b911
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure VM workload-specific additional information for job.
+ */
+public class AzureWorkloadJobExtendedInfo {
+ /**
+ * List of tasks for this job.
+ */
+ @JsonProperty(value = "tasksList")
+ private List tasksList;
+
+ /**
+ * Job properties.
+ */
+ @JsonProperty(value = "propertyBag")
+ private Map propertyBag;
+
+ /**
+ * Non localized error message on job execution.
+ */
+ @JsonProperty(value = "dynamicErrorMessage")
+ private String dynamicErrorMessage;
+
+ /**
+ * Get list of tasks for this job.
+ *
+ * @return the tasksList value
+ */
+ public List tasksList() {
+ return this.tasksList;
+ }
+
+ /**
+ * Set list of tasks for this job.
+ *
+ * @param tasksList the tasksList value to set
+ * @return the AzureWorkloadJobExtendedInfo object itself.
+ */
+ public AzureWorkloadJobExtendedInfo withTasksList(List tasksList) {
+ this.tasksList = tasksList;
+ return this;
+ }
+
+ /**
+ * Get job properties.
+ *
+ * @return the propertyBag value
+ */
+ public Map propertyBag() {
+ return this.propertyBag;
+ }
+
+ /**
+ * Set job properties.
+ *
+ * @param propertyBag the propertyBag value to set
+ * @return the AzureWorkloadJobExtendedInfo object itself.
+ */
+ public AzureWorkloadJobExtendedInfo withPropertyBag(Map propertyBag) {
+ this.propertyBag = propertyBag;
+ return this;
+ }
+
+ /**
+ * Get non localized error message on job execution.
+ *
+ * @return the dynamicErrorMessage value
+ */
+ public String dynamicErrorMessage() {
+ return this.dynamicErrorMessage;
+ }
+
+ /**
+ * Set non localized error message on job execution.
+ *
+ * @param dynamicErrorMessage the dynamicErrorMessage value to set
+ * @return the AzureWorkloadJobExtendedInfo object itself.
+ */
+ public AzureWorkloadJobExtendedInfo withDynamicErrorMessage(String dynamicErrorMessage) {
+ this.dynamicErrorMessage = dynamicErrorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobTaskDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobTaskDetails.java
new file mode 100644
index 000000000000..6bfb10a408de
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadJobTaskDetails.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure VM workload specific job task details.
+ */
+public class AzureWorkloadJobTaskDetails {
+ /**
+ * The task display name.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * The status.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Get the task display name.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the task display name.
+ *
+ * @param taskId the taskId value to set
+ * @return the AzureWorkloadJobTaskDetails object itself.
+ */
+ public AzureWorkloadJobTaskDetails withTaskId(String taskId) {
+ this.taskId = taskId;
+ return this;
+ }
+
+ /**
+ * Get the status.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status.
+ *
+ * @param status the status value to set
+ * @return the AzureWorkloadJobTaskDetails object itself.
+ */
+ public AzureWorkloadJobTaskDetails withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRecoveryPoint.java
new file mode 100644
index 000000000000..f23786591dcd
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRecoveryPoint.java
@@ -0,0 +1,54 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+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;
+
+/**
+ * Recovery point specific to PointInTime.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadPointInTimeRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadPointInTimeRecoveryPoint")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadSAPHanaPointInTimeRecoveryPoint", value = AzureWorkloadSAPHanaPointInTimeRecoveryPoint.class)
+})
+public class AzureWorkloadPointInTimeRecoveryPoint extends AzureWorkloadRecoveryPoint {
+ /**
+ * List of log ranges.
+ */
+ @JsonProperty(value = "timeRanges")
+ private List timeRanges;
+
+ /**
+ * Get list of log ranges.
+ *
+ * @return the timeRanges value
+ */
+ public List timeRanges() {
+ return this.timeRanges;
+ }
+
+ /**
+ * Set list of log ranges.
+ *
+ * @param timeRanges the timeRanges value to set
+ * @return the AzureWorkloadPointInTimeRecoveryPoint object itself.
+ */
+ public AzureWorkloadPointInTimeRecoveryPoint withTimeRanges(List timeRanges) {
+ this.timeRanges = timeRanges;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRestoreRequest.java
new file mode 100644
index 000000000000..a563db7d87c0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadPointInTimeRestoreRequest.java
@@ -0,0 +1,51 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log
+ * restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadPointInTimeRestoreRequest.class)
+@JsonTypeName("AzureWorkloadPointInTimeRestoreRequest")
+public class AzureWorkloadPointInTimeRestoreRequest extends AzureWorkloadRestoreRequest {
+ /**
+ * PointInTime value.
+ */
+ @JsonProperty(value = "pointInTime")
+ private DateTime pointInTime;
+
+ /**
+ * Get pointInTime value.
+ *
+ * @return the pointInTime value
+ */
+ public DateTime pointInTime() {
+ return this.pointInTime;
+ }
+
+ /**
+ * Set pointInTime value.
+ *
+ * @param pointInTime the pointInTime value to set
+ * @return the AzureWorkloadPointInTimeRestoreRequest object itself.
+ */
+ public AzureWorkloadPointInTimeRestoreRequest withPointInTime(DateTime pointInTime) {
+ this.pointInTime = pointInTime;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRecoveryPoint.java
new file mode 100644
index 000000000000..86b70805a360
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRecoveryPoint.java
@@ -0,0 +1,63 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryPointInner;
+
+/**
+ * Workload specific recovery point, specifically encapsulates full/diff
+ * recovery point.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadRecoveryPoint")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadPointInTimeRecoveryPoint", value = AzureWorkloadPointInTimeRecoveryPoint.class),
+ @JsonSubTypes.Type(name = "AzureWorkloadSAPHanaRecoveryPoint", value = AzureWorkloadSAPHanaRecoveryPoint.class),
+ @JsonSubTypes.Type(name = "AzureWorkloadSQLRecoveryPoint", value = AzureWorkloadSQLRecoveryPoint.class)
+})
+public class AzureWorkloadRecoveryPoint extends RecoveryPointInner {
+ /**
+ * UTC time at which recovery point was created.
+ */
+ @JsonProperty(value = "recoveryPointTimeInUTC", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime recoveryPointTimeInUTC;
+
+ /**
+ * Type of restore point. Possible values include: 'Invalid', 'Full',
+ * 'Log', 'Differential'.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private RestorePointType type;
+
+ /**
+ * Get uTC time at which recovery point was created.
+ *
+ * @return the recoveryPointTimeInUTC value
+ */
+ public DateTime recoveryPointTimeInUTC() {
+ return this.recoveryPointTimeInUTC;
+ }
+
+ /**
+ * Get type of restore point. Possible values include: 'Invalid', 'Full', 'Log', 'Differential'.
+ *
+ * @return the type value
+ */
+ public RestorePointType type() {
+ return this.type;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRestoreRequest.java
new file mode 100644
index 000000000000..3ebb0ad92e37
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadRestoreRequest.java
@@ -0,0 +1,164 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+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;
+
+/**
+ * AzureWorkload-specific restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadRestoreRequest.class)
+@JsonTypeName("AzureWorkloadRestoreRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadPointInTimeRestoreRequest", value = AzureWorkloadPointInTimeRestoreRequest.class),
+ @JsonSubTypes.Type(name = "AzureWorkloadSAPHanaRestoreRequest", value = AzureWorkloadSAPHanaRestoreRequest.class),
+ @JsonSubTypes.Type(name = "AzureWorkloadSQLRestoreRequest", value = AzureWorkloadSQLRestoreRequest.class)
+})
+public class AzureWorkloadRestoreRequest extends RestoreRequest {
+ /**
+ * Type of this recovery. Possible values include: 'Invalid',
+ * 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ */
+ @JsonProperty(value = "recoveryType")
+ private RecoveryType recoveryType;
+
+ /**
+ * Fully qualified ARM ID of the VM on which workload that was running is
+ * being recovered.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * Workload specific property bag.
+ */
+ @JsonProperty(value = "propertyBag")
+ private Map propertyBag;
+
+ /**
+ * Details of target database.
+ */
+ @JsonProperty(value = "targetInfo")
+ private TargetRestoreInfo targetInfo;
+
+ /**
+ * Defines whether the current recovery mode is file restore or database
+ * restore. Possible values include: 'Invalid', 'FileRecovery',
+ * 'WorkloadRecovery'.
+ */
+ @JsonProperty(value = "recoveryMode")
+ private RecoveryMode recoveryMode;
+
+ /**
+ * Get type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @return the recoveryType value
+ */
+ public RecoveryType recoveryType() {
+ return this.recoveryType;
+ }
+
+ /**
+ * Set type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @param recoveryType the recoveryType value to set
+ * @return the AzureWorkloadRestoreRequest object itself.
+ */
+ public AzureWorkloadRestoreRequest withRecoveryType(RecoveryType recoveryType) {
+ this.recoveryType = recoveryType;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the VM on which workload that was running is being recovered.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the VM on which workload that was running is being recovered.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the AzureWorkloadRestoreRequest object itself.
+ */
+ public AzureWorkloadRestoreRequest withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * Get workload specific property bag.
+ *
+ * @return the propertyBag value
+ */
+ public Map propertyBag() {
+ return this.propertyBag;
+ }
+
+ /**
+ * Set workload specific property bag.
+ *
+ * @param propertyBag the propertyBag value to set
+ * @return the AzureWorkloadRestoreRequest object itself.
+ */
+ public AzureWorkloadRestoreRequest withPropertyBag(Map propertyBag) {
+ this.propertyBag = propertyBag;
+ return this;
+ }
+
+ /**
+ * Get details of target database.
+ *
+ * @return the targetInfo value
+ */
+ public TargetRestoreInfo targetInfo() {
+ return this.targetInfo;
+ }
+
+ /**
+ * Set details of target database.
+ *
+ * @param targetInfo the targetInfo value to set
+ * @return the AzureWorkloadRestoreRequest object itself.
+ */
+ public AzureWorkloadRestoreRequest withTargetInfo(TargetRestoreInfo targetInfo) {
+ this.targetInfo = targetInfo;
+ return this;
+ }
+
+ /**
+ * Get defines whether the current recovery mode is file restore or database restore. Possible values include: 'Invalid', 'FileRecovery', 'WorkloadRecovery'.
+ *
+ * @return the recoveryMode value
+ */
+ public RecoveryMode recoveryMode() {
+ return this.recoveryMode;
+ }
+
+ /**
+ * Set defines whether the current recovery mode is file restore or database restore. Possible values include: 'Invalid', 'FileRecovery', 'WorkloadRecovery'.
+ *
+ * @param recoveryMode the recoveryMode value to set
+ * @return the AzureWorkloadRestoreRequest object itself.
+ */
+ public AzureWorkloadRestoreRequest withRecoveryMode(RecoveryMode recoveryMode) {
+ this.recoveryMode = recoveryMode;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRecoveryPoint.java
new file mode 100644
index 000000000000..b12bc4c38932
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRecoveryPoint.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Recovery point specific to PointInTime in SAPHana.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSAPHanaPointInTimeRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadSAPHanaPointInTimeRecoveryPoint")
+public class AzureWorkloadSAPHanaPointInTimeRecoveryPoint extends AzureWorkloadPointInTimeRecoveryPoint {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRestoreRequest.java
new file mode 100644
index 000000000000..01719a692f4e
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaPointInTimeRestoreRequest.java
@@ -0,0 +1,51 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log
+ * restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSAPHanaPointInTimeRestoreRequest.class)
+@JsonTypeName("AzureWorkloadSAPHanaPointInTimeRestoreRequest")
+public class AzureWorkloadSAPHanaPointInTimeRestoreRequest extends AzureWorkloadSAPHanaRestoreRequest {
+ /**
+ * PointInTime value.
+ */
+ @JsonProperty(value = "pointInTime")
+ private DateTime pointInTime;
+
+ /**
+ * Get pointInTime value.
+ *
+ * @return the pointInTime value
+ */
+ public DateTime pointInTime() {
+ return this.pointInTime;
+ }
+
+ /**
+ * Set pointInTime value.
+ *
+ * @param pointInTime the pointInTime value to set
+ * @return the AzureWorkloadSAPHanaPointInTimeRestoreRequest object itself.
+ */
+ public AzureWorkloadSAPHanaPointInTimeRestoreRequest withPointInTime(DateTime pointInTime) {
+ this.pointInTime = pointInTime;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRecoveryPoint.java
new file mode 100644
index 000000000000..63bc896c42e7
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRecoveryPoint.java
@@ -0,0 +1,23 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * SAPHana specific recoverypoint, specifically encapsulates full/diff
+ * recoverypoints.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSAPHanaRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadSAPHanaRecoveryPoint")
+public class AzureWorkloadSAPHanaRecoveryPoint extends AzureWorkloadRecoveryPoint {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRestoreRequest.java
new file mode 100644
index 000000000000..f17081fcce2f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSAPHanaRestoreRequest.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * AzureWorkload SAP Hana-specific restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSAPHanaRestoreRequest.class)
+@JsonTypeName("AzureWorkloadSAPHanaRestoreRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadSAPHanaPointInTimeRestoreRequest", value = AzureWorkloadSAPHanaPointInTimeRestoreRequest.class)
+})
+public class AzureWorkloadSAPHanaRestoreRequest extends AzureWorkloadRestoreRequest {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLAutoProtectionIntent.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLAutoProtectionIntent.java
new file mode 100644
index 000000000000..6bac96ec4d2f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLAutoProtectionIntent.java
@@ -0,0 +1,51 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Azure Workload SQL Auto Protection intent item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectionIntentItemType", defaultImpl = AzureWorkloadSQLAutoProtectionIntent.class)
+@JsonTypeName("AzureWorkloadSQLAutoProtectionIntent")
+public class AzureWorkloadSQLAutoProtectionIntent extends AzureWorkloadAutoProtectionIntent {
+ /**
+ * Workload item type of the item for which intent is to be set. Possible
+ * values include: 'Invalid', 'SQLInstance', 'SQLDataBase',
+ * 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadItemType")
+ private WorkloadItemType workloadItemType;
+
+ /**
+ * Get workload item type of the item for which intent is to be set. Possible values include: 'Invalid', 'SQLInstance', 'SQLDataBase', 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem', 'SAPAseDatabase'.
+ *
+ * @return the workloadItemType value
+ */
+ public WorkloadItemType workloadItemType() {
+ return this.workloadItemType;
+ }
+
+ /**
+ * Set workload item type of the item for which intent is to be set. Possible values include: 'Invalid', 'SQLInstance', 'SQLDataBase', 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem', 'SAPAseDatabase'.
+ *
+ * @param workloadItemType the workloadItemType value to set
+ * @return the AzureWorkloadSQLAutoProtectionIntent object itself.
+ */
+ public AzureWorkloadSQLAutoProtectionIntent withWorkloadItemType(WorkloadItemType workloadItemType) {
+ this.workloadItemType = workloadItemType;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRecoveryPoint.java
new file mode 100644
index 000000000000..ac156149328d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRecoveryPoint.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Recovery point specific to PointInTime.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSQLPointInTimeRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadSQLPointInTimeRecoveryPoint")
+public class AzureWorkloadSQLPointInTimeRecoveryPoint extends AzureWorkloadSQLRecoveryPoint {
+ /**
+ * List of log ranges.
+ */
+ @JsonProperty(value = "timeRanges")
+ private List timeRanges;
+
+ /**
+ * Get list of log ranges.
+ *
+ * @return the timeRanges value
+ */
+ public List timeRanges() {
+ return this.timeRanges;
+ }
+
+ /**
+ * Set list of log ranges.
+ *
+ * @param timeRanges the timeRanges value to set
+ * @return the AzureWorkloadSQLPointInTimeRecoveryPoint object itself.
+ */
+ public AzureWorkloadSQLPointInTimeRecoveryPoint withTimeRanges(List timeRanges) {
+ this.timeRanges = timeRanges;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRestoreRequest.java
new file mode 100644
index 000000000000..de4a2f395fef
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLPointInTimeRestoreRequest.java
@@ -0,0 +1,51 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * AzureWorkload SQL -specific restore. Specifically for PointInTime/Log
+ * restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSQLPointInTimeRestoreRequest.class)
+@JsonTypeName("AzureWorkloadSQLPointInTimeRestoreRequest")
+public class AzureWorkloadSQLPointInTimeRestoreRequest extends AzureWorkloadSQLRestoreRequest {
+ /**
+ * PointInTime value.
+ */
+ @JsonProperty(value = "pointInTime")
+ private DateTime pointInTime;
+
+ /**
+ * Get pointInTime value.
+ *
+ * @return the pointInTime value
+ */
+ public DateTime pointInTime() {
+ return this.pointInTime;
+ }
+
+ /**
+ * Set pointInTime value.
+ *
+ * @param pointInTime the pointInTime value to set
+ * @return the AzureWorkloadSQLPointInTimeRestoreRequest object itself.
+ */
+ public AzureWorkloadSQLPointInTimeRestoreRequest withPointInTime(DateTime pointInTime) {
+ this.pointInTime = pointInTime;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPoint.java
new file mode 100644
index 000000000000..f1383be7ccfe
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPoint.java
@@ -0,0 +1,62 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * SQL specific recoverypoint, specifically encapsulates full/diff
+ * recoverypoint along with extended info.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSQLRecoveryPoint.class)
+@JsonTypeName("AzureWorkloadSQLRecoveryPoint")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadSQLPointInTimeRecoveryPoint", value = AzureWorkloadSQLPointInTimeRecoveryPoint.class)
+})
+public class AzureWorkloadSQLRecoveryPoint extends AzureWorkloadRecoveryPoint {
+ /**
+ * Extended Info that provides data directory details. Will be populated in
+ * two cases:
+ * When a specific recovery point is accessed using GetRecoveryPoint
+ * Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo
+ * query filter.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private AzureWorkloadSQLRecoveryPointExtendedInfo extendedInfo;
+
+ /**
+ * Get extended Info that provides data directory details. Will be populated in two cases:
+ When a specific recovery point is accessed using GetRecoveryPoint
+ Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter.
+ *
+ * @return the extendedInfo value
+ */
+ public AzureWorkloadSQLRecoveryPointExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set extended Info that provides data directory details. Will be populated in two cases:
+ When a specific recovery point is accessed using GetRecoveryPoint
+ Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the AzureWorkloadSQLRecoveryPoint object itself.
+ */
+ public AzureWorkloadSQLRecoveryPoint withExtendedInfo(AzureWorkloadSQLRecoveryPointExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPointExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPointExtendedInfo.java
new file mode 100644
index 000000000000..d69e5245ae67
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRecoveryPointExtendedInfo.java
@@ -0,0 +1,51 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Extended info class details.
+ */
+public class AzureWorkloadSQLRecoveryPointExtendedInfo {
+ /**
+ * UTC time at which data directory info was captured.
+ */
+ @JsonProperty(value = "dataDirectoryTimeInUTC", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime dataDirectoryTimeInUTC;
+
+ /**
+ * List of data directory paths during restore operation.
+ */
+ @JsonProperty(value = "dataDirectoryPaths", access = JsonProperty.Access.WRITE_ONLY)
+ private List dataDirectoryPaths;
+
+ /**
+ * Get uTC time at which data directory info was captured.
+ *
+ * @return the dataDirectoryTimeInUTC value
+ */
+ public DateTime dataDirectoryTimeInUTC() {
+ return this.dataDirectoryTimeInUTC;
+ }
+
+ /**
+ * Get list of data directory paths during restore operation.
+ *
+ * @return the dataDirectoryPaths value
+ */
+ public List dataDirectoryPaths() {
+ return this.dataDirectoryPaths;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRestoreRequest.java
new file mode 100644
index 000000000000..e0445f577720
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/AzureWorkloadSQLRestoreRequest.java
@@ -0,0 +1,108 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+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;
+
+/**
+ * AzureWorkload SQL -specific restore. Specifically for full/diff restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = AzureWorkloadSQLRestoreRequest.class)
+@JsonTypeName("AzureWorkloadSQLRestoreRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureWorkloadSQLPointInTimeRestoreRequest", value = AzureWorkloadSQLPointInTimeRestoreRequest.class)
+})
+public class AzureWorkloadSQLRestoreRequest extends AzureWorkloadRestoreRequest {
+ /**
+ * Default option set to true. If this is set to false, alternate data
+ * directory must be provided.
+ */
+ @JsonProperty(value = "shouldUseAlternateTargetLocation")
+ private Boolean shouldUseAlternateTargetLocation;
+
+ /**
+ * SQL specific property where user can chose to set no-recovery when
+ * restore operation is tried.
+ */
+ @JsonProperty(value = "isNonRecoverable")
+ private Boolean isNonRecoverable;
+
+ /**
+ * Data directory details.
+ */
+ @JsonProperty(value = "alternateDirectoryPaths")
+ private List alternateDirectoryPaths;
+
+ /**
+ * Get default option set to true. If this is set to false, alternate data directory must be provided.
+ *
+ * @return the shouldUseAlternateTargetLocation value
+ */
+ public Boolean shouldUseAlternateTargetLocation() {
+ return this.shouldUseAlternateTargetLocation;
+ }
+
+ /**
+ * Set default option set to true. If this is set to false, alternate data directory must be provided.
+ *
+ * @param shouldUseAlternateTargetLocation the shouldUseAlternateTargetLocation value to set
+ * @return the AzureWorkloadSQLRestoreRequest object itself.
+ */
+ public AzureWorkloadSQLRestoreRequest withShouldUseAlternateTargetLocation(Boolean shouldUseAlternateTargetLocation) {
+ this.shouldUseAlternateTargetLocation = shouldUseAlternateTargetLocation;
+ return this;
+ }
+
+ /**
+ * Get sQL specific property where user can chose to set no-recovery when restore operation is tried.
+ *
+ * @return the isNonRecoverable value
+ */
+ public Boolean isNonRecoverable() {
+ return this.isNonRecoverable;
+ }
+
+ /**
+ * Set sQL specific property where user can chose to set no-recovery when restore operation is tried.
+ *
+ * @param isNonRecoverable the isNonRecoverable value to set
+ * @return the AzureWorkloadSQLRestoreRequest object itself.
+ */
+ public AzureWorkloadSQLRestoreRequest withIsNonRecoverable(Boolean isNonRecoverable) {
+ this.isNonRecoverable = isNonRecoverable;
+ return this;
+ }
+
+ /**
+ * Get data directory details.
+ *
+ * @return the alternateDirectoryPaths value
+ */
+ public List alternateDirectoryPaths() {
+ return this.alternateDirectoryPaths;
+ }
+
+ /**
+ * Set data directory details.
+ *
+ * @param alternateDirectoryPaths the alternateDirectoryPaths value to set
+ * @return the AzureWorkloadSQLRestoreRequest object itself.
+ */
+ public AzureWorkloadSQLRestoreRequest withAlternateDirectoryPaths(List alternateDirectoryPaths) {
+ this.alternateDirectoryPaths = alternateDirectoryPaths;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BEKDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BEKDetails.java
new file mode 100644
index 000000000000..ac6246392d03
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BEKDetails.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * BEK is bitlocker encryption key.
+ */
+public class BEKDetails {
+ /**
+ * Secret is BEK.
+ */
+ @JsonProperty(value = "secretUrl")
+ private String secretUrl;
+
+ /**
+ * ID of the Key Vault where this Secret is stored.
+ */
+ @JsonProperty(value = "secretVaultId")
+ private String secretVaultId;
+
+ /**
+ * BEK data.
+ */
+ @JsonProperty(value = "secretData")
+ private String secretData;
+
+ /**
+ * Get secret is BEK.
+ *
+ * @return the secretUrl value
+ */
+ public String secretUrl() {
+ return this.secretUrl;
+ }
+
+ /**
+ * Set secret is BEK.
+ *
+ * @param secretUrl the secretUrl value to set
+ * @return the BEKDetails object itself.
+ */
+ public BEKDetails withSecretUrl(String secretUrl) {
+ this.secretUrl = secretUrl;
+ return this;
+ }
+
+ /**
+ * Get iD of the Key Vault where this Secret is stored.
+ *
+ * @return the secretVaultId value
+ */
+ public String secretVaultId() {
+ return this.secretVaultId;
+ }
+
+ /**
+ * Set iD of the Key Vault where this Secret is stored.
+ *
+ * @param secretVaultId the secretVaultId value to set
+ * @return the BEKDetails object itself.
+ */
+ public BEKDetails withSecretVaultId(String secretVaultId) {
+ this.secretVaultId = secretVaultId;
+ return this;
+ }
+
+ /**
+ * Get bEK data.
+ *
+ * @return the secretData value
+ */
+ public String secretData() {
+ return this.secretData;
+ }
+
+ /**
+ * Set bEK data.
+ *
+ * @param secretData the secretData value to set
+ * @return the BEKDetails object itself.
+ */
+ public BEKDetails withSecretData(String secretData) {
+ this.secretData = secretData;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEngineQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEngineQueryObject.java
new file mode 100644
index 000000000000..dc2d5c84cfdf
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEngineQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Query parameters to fetch list of backup engines.
+ */
+public class BMSBackupEngineQueryObject {
+ /**
+ * attribute to add extended info.
+ */
+ @JsonProperty(value = "expand")
+ private String expand;
+
+ /**
+ * Get attribute to add extended info.
+ *
+ * @return the expand value
+ */
+ public String expand() {
+ return this.expand;
+ }
+
+ /**
+ * Set attribute to add extended info.
+ *
+ * @param expand the expand value to set
+ * @return the BMSBackupEngineQueryObject object itself.
+ */
+ public BMSBackupEngineQueryObject withExpand(String expand) {
+ this.expand = expand;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEnginesQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEnginesQueryObject.java
new file mode 100644
index 000000000000..124db4770a7d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupEnginesQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Query parameters to fetch list of backup engines.
+ */
+public class BMSBackupEnginesQueryObject {
+ /**
+ * Backup management type for the backup engine. Possible values include:
+ * 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Friendly name of the backup engine.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Attribute to add extended info.
+ */
+ @JsonProperty(value = "expand")
+ private String expand;
+
+ /**
+ * Get backup management type for the backup engine. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type for the backup engine. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSBackupEnginesQueryObject object itself.
+ */
+ public BMSBackupEnginesQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get friendly name of the backup engine.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the backup engine.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the BMSBackupEnginesQueryObject object itself.
+ */
+ public BMSBackupEnginesQueryObject withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get attribute to add extended info.
+ *
+ * @return the expand value
+ */
+ public String expand() {
+ return this.expand;
+ }
+
+ /**
+ * Set attribute to add extended info.
+ *
+ * @param expand the expand value to set
+ * @return the BMSBackupEnginesQueryObject object itself.
+ */
+ public BMSBackupEnginesQueryObject withExpand(String expand) {
+ this.expand = expand;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupSummariesQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupSummariesQueryObject.java
new file mode 100644
index 000000000000..b68292c61661
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSBackupSummariesQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Query parameters to fetch backup summaries.
+ */
+public class BMSBackupSummariesQueryObject {
+ /**
+ * Backup management type for this container. Possible values include:
+ * 'Invalid', 'BackupProtectedItemCountSummary',
+ * 'BackupProtectionContainerCountSummary'.
+ */
+ @JsonProperty(value = "type")
+ private Type type;
+
+ /**
+ * Get backup management type for this container. Possible values include: 'Invalid', 'BackupProtectedItemCountSummary', 'BackupProtectionContainerCountSummary'.
+ *
+ * @return the type value
+ */
+ public Type type() {
+ return this.type;
+ }
+
+ /**
+ * Set backup management type for this container. Possible values include: 'Invalid', 'BackupProtectedItemCountSummary', 'BackupProtectionContainerCountSummary'.
+ *
+ * @param type the type value to set
+ * @return the BMSBackupSummariesQueryObject object itself.
+ */
+ public BMSBackupSummariesQueryObject withType(Type type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainerQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainerQueryObject.java
new file mode 100644
index 000000000000..99eb5346cdea
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainerQueryObject.java
@@ -0,0 +1,182 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The query filters that can be used with the list containers API.
+ */
+public class BMSContainerQueryObject {
+ /**
+ * Backup management type for this container. Possible values include:
+ * 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType", required = true)
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Type of container for filter. Possible values include: 'Invalid',
+ * 'Unknown', 'IaasVMContainer', 'IaasVMServiceContainer', 'DPMContainer',
+ * 'AzureBackupServerContainer', 'MABContainer', 'Cluster',
+ * 'AzureSqlContainer', 'Windows', 'VCenter', 'VMAppContainer',
+ * 'SQLAGWorkLoadContainer', 'StorageContainer', 'GenericContainer'.
+ */
+ @JsonProperty(value = "containerType")
+ private ContainerType containerType;
+
+ /**
+ * Backup engine name.
+ */
+ @JsonProperty(value = "backupEngineName")
+ private String backupEngineName;
+
+ /**
+ * Fabric name for filter.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * Status of registration of this container with the Recovery Services
+ * Vault.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Friendly name of this container.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Get backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get type of container for filter. Possible values include: 'Invalid', 'Unknown', 'IaasVMContainer', 'IaasVMServiceContainer', 'DPMContainer', 'AzureBackupServerContainer', 'MABContainer', 'Cluster', 'AzureSqlContainer', 'Windows', 'VCenter', 'VMAppContainer', 'SQLAGWorkLoadContainer', 'StorageContainer', 'GenericContainer'.
+ *
+ * @return the containerType value
+ */
+ public ContainerType containerType() {
+ return this.containerType;
+ }
+
+ /**
+ * Set type of container for filter. Possible values include: 'Invalid', 'Unknown', 'IaasVMContainer', 'IaasVMServiceContainer', 'DPMContainer', 'AzureBackupServerContainer', 'MABContainer', 'Cluster', 'AzureSqlContainer', 'Windows', 'VCenter', 'VMAppContainer', 'SQLAGWorkLoadContainer', 'StorageContainer', 'GenericContainer'.
+ *
+ * @param containerType the containerType value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withContainerType(ContainerType containerType) {
+ this.containerType = containerType;
+ return this;
+ }
+
+ /**
+ * Get backup engine name.
+ *
+ * @return the backupEngineName value
+ */
+ public String backupEngineName() {
+ return this.backupEngineName;
+ }
+
+ /**
+ * Set backup engine name.
+ *
+ * @param backupEngineName the backupEngineName value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withBackupEngineName(String backupEngineName) {
+ this.backupEngineName = backupEngineName;
+ return this;
+ }
+
+ /**
+ * Get fabric name for filter.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set fabric name for filter.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get status of registration of this container with the Recovery Services Vault.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of registration of this container with the Recovery Services Vault.
+ *
+ * @param status the status value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get friendly name of this container.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of this container.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the BMSContainerQueryObject object itself.
+ */
+ public BMSContainerQueryObject withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainersInquiryQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainersInquiryQueryObject.java
new file mode 100644
index 000000000000..15ac750e3b3f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSContainersInquiryQueryObject.java
@@ -0,0 +1,76 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The query filters that can be used with the inquire container API.
+ */
+public class BMSContainersInquiryQueryObject {
+ /**
+ * Backup management type for this container. Possible values include:
+ * 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Workload type for this container. Possible values include: 'Invalid',
+ * 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint',
+ * 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase',
+ * 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadType")
+ private WorkloadType workloadType;
+
+ /**
+ * Get backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSContainersInquiryQueryObject object itself.
+ */
+ public BMSContainersInquiryQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get workload type for this container. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workloadType value
+ */
+ public WorkloadType workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set workload type for this container. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the BMSContainersInquiryQueryObject object itself.
+ */
+ public BMSContainersInquiryQueryObject withWorkloadType(WorkloadType workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSPOQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSPOQueryObject.java
new file mode 100644
index 000000000000..966ea0a30bea
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSPOQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters to list items that can be backed up.
+ */
+public class BMSPOQueryObject {
+ /**
+ * Backup management type. Possible values include: 'Invalid',
+ * 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Workload type. Possible values include: 'Invalid', 'VM', 'FileFolder',
+ * 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM',
+ * 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase',
+ * 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadType")
+ private WorkloadType workloadType;
+
+ /**
+ * Full name of the container whose Protectable Objects should be returned.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * Backup status query parameter.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Friendly name.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Get backup management type. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSPOQueryObject object itself.
+ */
+ public BMSPOQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get workload type. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workloadType value
+ */
+ public WorkloadType workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set workload type. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the BMSPOQueryObject object itself.
+ */
+ public BMSPOQueryObject withWorkloadType(WorkloadType workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+ /**
+ * Get full name of the container whose Protectable Objects should be returned.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set full name of the container whose Protectable Objects should be returned.
+ *
+ * @param containerName the containerName value to set
+ * @return the BMSPOQueryObject object itself.
+ */
+ public BMSPOQueryObject withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get backup status query parameter.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set backup status query parameter.
+ *
+ * @param status the status value to set
+ * @return the BMSPOQueryObject object itself.
+ */
+ public BMSPOQueryObject withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get friendly name.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the BMSPOQueryObject object itself.
+ */
+ public BMSPOQueryObject withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRPQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRPQueryObject.java
new file mode 100644
index 000000000000..dfd4bbd56809
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRPQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters to list backup copies.
+ */
+public class BMSRPQueryObject {
+ /**
+ * Backup copies created after this time.
+ */
+ @JsonProperty(value = "startDate")
+ private DateTime startDate;
+
+ /**
+ * Backup copies created before this time.
+ */
+ @JsonProperty(value = "endDate")
+ private DateTime endDate;
+
+ /**
+ * RestorePoint type. Possible values include: 'Invalid', 'Full', 'Log',
+ * 'Differential', 'FullAndDifferential', 'All'.
+ */
+ @JsonProperty(value = "restorePointQueryType")
+ private RestorePointQueryType restorePointQueryType;
+
+ /**
+ * In Get Recovery Point, it tells whether extended information about
+ * recovery point is asked.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private Boolean extendedInfo;
+
+ /**
+ * Get backup copies created after this time.
+ *
+ * @return the startDate value
+ */
+ public DateTime startDate() {
+ return this.startDate;
+ }
+
+ /**
+ * Set backup copies created after this time.
+ *
+ * @param startDate the startDate value to set
+ * @return the BMSRPQueryObject object itself.
+ */
+ public BMSRPQueryObject withStartDate(DateTime startDate) {
+ this.startDate = startDate;
+ return this;
+ }
+
+ /**
+ * Get backup copies created before this time.
+ *
+ * @return the endDate value
+ */
+ public DateTime endDate() {
+ return this.endDate;
+ }
+
+ /**
+ * Set backup copies created before this time.
+ *
+ * @param endDate the endDate value to set
+ * @return the BMSRPQueryObject object itself.
+ */
+ public BMSRPQueryObject withEndDate(DateTime endDate) {
+ this.endDate = endDate;
+ return this;
+ }
+
+ /**
+ * Get restorePoint type. Possible values include: 'Invalid', 'Full', 'Log', 'Differential', 'FullAndDifferential', 'All'.
+ *
+ * @return the restorePointQueryType value
+ */
+ public RestorePointQueryType restorePointQueryType() {
+ return this.restorePointQueryType;
+ }
+
+ /**
+ * Set restorePoint type. Possible values include: 'Invalid', 'Full', 'Log', 'Differential', 'FullAndDifferential', 'All'.
+ *
+ * @param restorePointQueryType the restorePointQueryType value to set
+ * @return the BMSRPQueryObject object itself.
+ */
+ public BMSRPQueryObject withRestorePointQueryType(RestorePointQueryType restorePointQueryType) {
+ this.restorePointQueryType = restorePointQueryType;
+ return this;
+ }
+
+ /**
+ * Get in Get Recovery Point, it tells whether extended information about recovery point is asked.
+ *
+ * @return the extendedInfo value
+ */
+ public Boolean extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set in Get Recovery Point, it tells whether extended information about recovery point is asked.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the BMSRPQueryObject object itself.
+ */
+ public BMSRPQueryObject withExtendedInfo(Boolean extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRefreshContainersQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRefreshContainersQueryObject.java
new file mode 100644
index 000000000000..dd46bb84fe6e
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSRefreshContainersQueryObject.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The query filters that can be used with the refresh container API.
+ */
+public class BMSRefreshContainersQueryObject {
+ /**
+ * Backup management type for this container. Possible values include:
+ * 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Get backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type for this container. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSRefreshContainersQueryObject object itself.
+ */
+ public BMSRefreshContainersQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSWorkloadItemQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSWorkloadItemQueryObject.java
new file mode 100644
index 000000000000..5002eaba0ced
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BMSWorkloadItemQueryObject.java
@@ -0,0 +1,131 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters to list items that can be backed up.
+ */
+public class BMSWorkloadItemQueryObject {
+ /**
+ * Backup management type. Possible values include: 'Invalid',
+ * 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql',
+ * 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Workload Item type. Possible values include: 'Invalid', 'SQLInstance',
+ * 'SQLDataBase', 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem',
+ * 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadItemType")
+ private WorkloadItemType workloadItemType;
+
+ /**
+ * Workload type. Possible values include: 'Invalid', 'VM', 'FileFolder',
+ * 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM',
+ * 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase',
+ * 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "workloadType")
+ private WorkloadType workloadType;
+
+ /**
+ * Backup status query parameter. Possible values include: 'Invalid',
+ * 'NotProtected', 'Protecting', 'Protected', 'ProtectionFailed'.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private ProtectionStatus protectionStatus;
+
+ /**
+ * Get backup management type. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set backup management type. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BMSWorkloadItemQueryObject object itself.
+ */
+ public BMSWorkloadItemQueryObject withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get workload Item type. Possible values include: 'Invalid', 'SQLInstance', 'SQLDataBase', 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem', 'SAPAseDatabase'.
+ *
+ * @return the workloadItemType value
+ */
+ public WorkloadItemType workloadItemType() {
+ return this.workloadItemType;
+ }
+
+ /**
+ * Set workload Item type. Possible values include: 'Invalid', 'SQLInstance', 'SQLDataBase', 'SAPHanaSystem', 'SAPHanaDatabase', 'SAPAseSystem', 'SAPAseDatabase'.
+ *
+ * @param workloadItemType the workloadItemType value to set
+ * @return the BMSWorkloadItemQueryObject object itself.
+ */
+ public BMSWorkloadItemQueryObject withWorkloadItemType(WorkloadItemType workloadItemType) {
+ this.workloadItemType = workloadItemType;
+ return this;
+ }
+
+ /**
+ * Get workload type. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the workloadType value
+ */
+ public WorkloadType workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set workload type. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the BMSWorkloadItemQueryObject object itself.
+ */
+ public BMSWorkloadItemQueryObject withWorkloadType(WorkloadType workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+ /**
+ * Get backup status query parameter. Possible values include: 'Invalid', 'NotProtected', 'Protecting', 'Protected', 'ProtectionFailed'.
+ *
+ * @return the protectionStatus value
+ */
+ public ProtectionStatus protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set backup status query parameter. Possible values include: 'Invalid', 'NotProtected', 'Protecting', 'Protected', 'ProtectionFailed'.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the BMSWorkloadItemQueryObject object itself.
+ */
+ public BMSWorkloadItemQueryObject withProtectionStatus(ProtectionStatus protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBase.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBase.java
new file mode 100644
index 000000000000..85b756db5495
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBase.java
@@ -0,0 +1,346 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * The base backup engine class. All workload specific backup engines derive
+ * from this class.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupEngineType", defaultImpl = BackupEngineBase.class)
+@JsonTypeName("BackupEngineBase")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureBackupServerEngine", value = AzureBackupServerEngine.class),
+ @JsonSubTypes.Type(name = "DpmBackupEngine", value = DpmBackupEngine.class)
+})
+public class BackupEngineBase {
+ /**
+ * Friendly name of the backup engine.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Type of backup management for the backup engine. Possible values
+ * include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer',
+ * 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ */
+ @JsonProperty(value = "backupManagementType")
+ private BackupManagementType backupManagementType;
+
+ /**
+ * Registration status of the backup engine with the Recovery Services
+ * Vault.
+ */
+ @JsonProperty(value = "registrationStatus")
+ private String registrationStatus;
+
+ /**
+ * Status of the backup engine with the Recovery Services Vault. =
+ * {Active/Deleting/DeleteFailed}.
+ */
+ @JsonProperty(value = "backupEngineState")
+ private String backupEngineState;
+
+ /**
+ * Backup status of the backup engine.
+ */
+ @JsonProperty(value = "healthStatus")
+ private String healthStatus;
+
+ /**
+ * Flag indicating if the backup engine be registered, once already
+ * registered.
+ */
+ @JsonProperty(value = "canReRegister")
+ private Boolean canReRegister;
+
+ /**
+ * ID of the backup engine.
+ */
+ @JsonProperty(value = "backupEngineId")
+ private String backupEngineId;
+
+ /**
+ * Backup engine version.
+ */
+ @JsonProperty(value = "dpmVersion")
+ private String dpmVersion;
+
+ /**
+ * Backup agent version.
+ */
+ @JsonProperty(value = "azureBackupAgentVersion")
+ private String azureBackupAgentVersion;
+
+ /**
+ * To check if backup agent upgrade available.
+ */
+ @JsonProperty(value = "isAzureBackupAgentUpgradeAvailable")
+ private Boolean isAzureBackupAgentUpgradeAvailable;
+
+ /**
+ * To check if backup engine upgrade available.
+ */
+ @JsonProperty(value = "isDpmUpgradeAvailable")
+ private Boolean isDpmUpgradeAvailable;
+
+ /**
+ * Extended info of the backupengine.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private BackupEngineExtendedInfo extendedInfo;
+
+ /**
+ * Get friendly name of the backup engine.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the backup engine.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get type of backup management for the backup engine. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @return the backupManagementType value
+ */
+ public BackupManagementType backupManagementType() {
+ return this.backupManagementType;
+ }
+
+ /**
+ * Set type of backup management for the backup engine. Possible values include: 'Invalid', 'AzureIaasVM', 'MAB', 'DPM', 'AzureBackupServer', 'AzureSql', 'AzureStorage', 'AzureWorkload', 'DefaultBackup'.
+ *
+ * @param backupManagementType the backupManagementType value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withBackupManagementType(BackupManagementType backupManagementType) {
+ this.backupManagementType = backupManagementType;
+ return this;
+ }
+
+ /**
+ * Get registration status of the backup engine with the Recovery Services Vault.
+ *
+ * @return the registrationStatus value
+ */
+ public String registrationStatus() {
+ return this.registrationStatus;
+ }
+
+ /**
+ * Set registration status of the backup engine with the Recovery Services Vault.
+ *
+ * @param registrationStatus the registrationStatus value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withRegistrationStatus(String registrationStatus) {
+ this.registrationStatus = registrationStatus;
+ return this;
+ }
+
+ /**
+ * Get status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}.
+ *
+ * @return the backupEngineState value
+ */
+ public String backupEngineState() {
+ return this.backupEngineState;
+ }
+
+ /**
+ * Set status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}.
+ *
+ * @param backupEngineState the backupEngineState value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withBackupEngineState(String backupEngineState) {
+ this.backupEngineState = backupEngineState;
+ return this;
+ }
+
+ /**
+ * Get backup status of the backup engine.
+ *
+ * @return the healthStatus value
+ */
+ public String healthStatus() {
+ return this.healthStatus;
+ }
+
+ /**
+ * Set backup status of the backup engine.
+ *
+ * @param healthStatus the healthStatus value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withHealthStatus(String healthStatus) {
+ this.healthStatus = healthStatus;
+ return this;
+ }
+
+ /**
+ * Get flag indicating if the backup engine be registered, once already registered.
+ *
+ * @return the canReRegister value
+ */
+ public Boolean canReRegister() {
+ return this.canReRegister;
+ }
+
+ /**
+ * Set flag indicating if the backup engine be registered, once already registered.
+ *
+ * @param canReRegister the canReRegister value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withCanReRegister(Boolean canReRegister) {
+ this.canReRegister = canReRegister;
+ return this;
+ }
+
+ /**
+ * Get iD of the backup engine.
+ *
+ * @return the backupEngineId value
+ */
+ public String backupEngineId() {
+ return this.backupEngineId;
+ }
+
+ /**
+ * Set iD of the backup engine.
+ *
+ * @param backupEngineId the backupEngineId value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withBackupEngineId(String backupEngineId) {
+ this.backupEngineId = backupEngineId;
+ return this;
+ }
+
+ /**
+ * Get backup engine version.
+ *
+ * @return the dpmVersion value
+ */
+ public String dpmVersion() {
+ return this.dpmVersion;
+ }
+
+ /**
+ * Set backup engine version.
+ *
+ * @param dpmVersion the dpmVersion value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withDpmVersion(String dpmVersion) {
+ this.dpmVersion = dpmVersion;
+ return this;
+ }
+
+ /**
+ * Get backup agent version.
+ *
+ * @return the azureBackupAgentVersion value
+ */
+ public String azureBackupAgentVersion() {
+ return this.azureBackupAgentVersion;
+ }
+
+ /**
+ * Set backup agent version.
+ *
+ * @param azureBackupAgentVersion the azureBackupAgentVersion value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withAzureBackupAgentVersion(String azureBackupAgentVersion) {
+ this.azureBackupAgentVersion = azureBackupAgentVersion;
+ return this;
+ }
+
+ /**
+ * Get to check if backup agent upgrade available.
+ *
+ * @return the isAzureBackupAgentUpgradeAvailable value
+ */
+ public Boolean isAzureBackupAgentUpgradeAvailable() {
+ return this.isAzureBackupAgentUpgradeAvailable;
+ }
+
+ /**
+ * Set to check if backup agent upgrade available.
+ *
+ * @param isAzureBackupAgentUpgradeAvailable the isAzureBackupAgentUpgradeAvailable value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withIsAzureBackupAgentUpgradeAvailable(Boolean isAzureBackupAgentUpgradeAvailable) {
+ this.isAzureBackupAgentUpgradeAvailable = isAzureBackupAgentUpgradeAvailable;
+ return this;
+ }
+
+ /**
+ * Get to check if backup engine upgrade available.
+ *
+ * @return the isDpmUpgradeAvailable value
+ */
+ public Boolean isDpmUpgradeAvailable() {
+ return this.isDpmUpgradeAvailable;
+ }
+
+ /**
+ * Set to check if backup engine upgrade available.
+ *
+ * @param isDpmUpgradeAvailable the isDpmUpgradeAvailable value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withIsDpmUpgradeAvailable(Boolean isDpmUpgradeAvailable) {
+ this.isDpmUpgradeAvailable = isDpmUpgradeAvailable;
+ return this;
+ }
+
+ /**
+ * Get extended info of the backupengine.
+ *
+ * @return the extendedInfo value
+ */
+ public BackupEngineExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set extended info of the backupengine.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the BackupEngineBase object itself.
+ */
+ public BackupEngineBase withExtendedInfo(BackupEngineExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBaseResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBaseResource.java
new file mode 100644
index 000000000000..303df846160f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineBaseResource.java
@@ -0,0 +1,60 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupEngineBaseResourceInner;
+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.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import java.util.Map;
+
+/**
+ * Type representing BackupEngineBaseResource.
+ */
+public interface BackupEngineBaseResource extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ BackupEngineBase properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineExtendedInfo.java
new file mode 100644
index 000000000000..8ab8e1cc1f29
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngineExtendedInfo.java
@@ -0,0 +1,228 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information on backup engine.
+ */
+public class BackupEngineExtendedInfo {
+ /**
+ * Database name of backup engine.
+ */
+ @JsonProperty(value = "databaseName")
+ private String databaseName;
+
+ /**
+ * Number of protected items in the backup engine.
+ */
+ @JsonProperty(value = "protectedItemsCount")
+ private Integer protectedItemsCount;
+
+ /**
+ * Number of protected servers in the backup engine.
+ */
+ @JsonProperty(value = "protectedServersCount")
+ private Integer protectedServersCount;
+
+ /**
+ * Number of disks in the backup engine.
+ */
+ @JsonProperty(value = "diskCount")
+ private Integer diskCount;
+
+ /**
+ * Disk space used in the backup engine.
+ */
+ @JsonProperty(value = "usedDiskSpace")
+ private Double usedDiskSpace;
+
+ /**
+ * Disk space currently available in the backup engine.
+ */
+ @JsonProperty(value = "availableDiskSpace")
+ private Double availableDiskSpace;
+
+ /**
+ * Last refresh time in the backup engine.
+ */
+ @JsonProperty(value = "refreshedAt")
+ private DateTime refreshedAt;
+
+ /**
+ * Protected instances in the backup engine.
+ */
+ @JsonProperty(value = "azureProtectedInstances")
+ private Integer azureProtectedInstances;
+
+ /**
+ * Get database name of backup engine.
+ *
+ * @return the databaseName value
+ */
+ public String databaseName() {
+ return this.databaseName;
+ }
+
+ /**
+ * Set database name of backup engine.
+ *
+ * @param databaseName the databaseName value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ return this;
+ }
+
+ /**
+ * Get number of protected items in the backup engine.
+ *
+ * @return the protectedItemsCount value
+ */
+ public Integer protectedItemsCount() {
+ return this.protectedItemsCount;
+ }
+
+ /**
+ * Set number of protected items in the backup engine.
+ *
+ * @param protectedItemsCount the protectedItemsCount value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withProtectedItemsCount(Integer protectedItemsCount) {
+ this.protectedItemsCount = protectedItemsCount;
+ return this;
+ }
+
+ /**
+ * Get number of protected servers in the backup engine.
+ *
+ * @return the protectedServersCount value
+ */
+ public Integer protectedServersCount() {
+ return this.protectedServersCount;
+ }
+
+ /**
+ * Set number of protected servers in the backup engine.
+ *
+ * @param protectedServersCount the protectedServersCount value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withProtectedServersCount(Integer protectedServersCount) {
+ this.protectedServersCount = protectedServersCount;
+ return this;
+ }
+
+ /**
+ * Get number of disks in the backup engine.
+ *
+ * @return the diskCount value
+ */
+ public Integer diskCount() {
+ return this.diskCount;
+ }
+
+ /**
+ * Set number of disks in the backup engine.
+ *
+ * @param diskCount the diskCount value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withDiskCount(Integer diskCount) {
+ this.diskCount = diskCount;
+ return this;
+ }
+
+ /**
+ * Get disk space used in the backup engine.
+ *
+ * @return the usedDiskSpace value
+ */
+ public Double usedDiskSpace() {
+ return this.usedDiskSpace;
+ }
+
+ /**
+ * Set disk space used in the backup engine.
+ *
+ * @param usedDiskSpace the usedDiskSpace value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withUsedDiskSpace(Double usedDiskSpace) {
+ this.usedDiskSpace = usedDiskSpace;
+ return this;
+ }
+
+ /**
+ * Get disk space currently available in the backup engine.
+ *
+ * @return the availableDiskSpace value
+ */
+ public Double availableDiskSpace() {
+ return this.availableDiskSpace;
+ }
+
+ /**
+ * Set disk space currently available in the backup engine.
+ *
+ * @param availableDiskSpace the availableDiskSpace value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withAvailableDiskSpace(Double availableDiskSpace) {
+ this.availableDiskSpace = availableDiskSpace;
+ return this;
+ }
+
+ /**
+ * Get last refresh time in the backup engine.
+ *
+ * @return the refreshedAt value
+ */
+ public DateTime refreshedAt() {
+ return this.refreshedAt;
+ }
+
+ /**
+ * Set last refresh time in the backup engine.
+ *
+ * @param refreshedAt the refreshedAt value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withRefreshedAt(DateTime refreshedAt) {
+ this.refreshedAt = refreshedAt;
+ return this;
+ }
+
+ /**
+ * Get protected instances in the backup engine.
+ *
+ * @return the azureProtectedInstances value
+ */
+ public Integer azureProtectedInstances() {
+ return this.azureProtectedInstances;
+ }
+
+ /**
+ * Set protected instances in the backup engine.
+ *
+ * @param azureProtectedInstances the azureProtectedInstances value to set
+ * @return the BackupEngineExtendedInfo object itself.
+ */
+ public BackupEngineExtendedInfo withAzureProtectedInstances(Integer azureProtectedInstances) {
+ this.azureProtectedInstances = azureProtectedInstances;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngines.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngines.java
new file mode 100644
index 000000000000..f8055dc070e9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupEngines.java
@@ -0,0 +1,42 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupEnginesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupEngines.
+ */
+public interface BackupEngines extends HasInner {
+ /**
+ * Returns backup management server registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param backupEngineName Name of the backup management server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName, String backupEngineName);
+
+ /**
+ * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultOperationStatus.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultOperationStatus.java
new file mode 100644
index 000000000000..a4ff66c00999
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultOperationStatus.java
@@ -0,0 +1,60 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.OperationStatusInner;
+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.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing BackupFabricVaultOperationStatus.
+ */
+public interface BackupFabricVaultOperationStatus extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the error value.
+ */
+ OperationStatusError error();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ OperationStatusExtendedInfo properties();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the status value.
+ */
+ OperationStatusValues status();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultProtectionContainerResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultProtectionContainerResource.java
new file mode 100644
index 000000000000..cee70bc46891
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupFabricVaultProtectionContainerResource.java
@@ -0,0 +1,209 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerResourceInner;
+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.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import java.util.Map;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * Type representing BackupFabricVaultProtectionContainerResource.
+ */
+public interface BackupFabricVaultProtectionContainerResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ ProtectionContainerInner properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BackupFabricVaultProtectionContainerResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithBackupFabric, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BackupFabricVaultProtectionContainerResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BackupFabricVaultProtectionContainerResource definition.
+ */
+ interface Blank extends WithBackupFabric {
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource definition allowing to specify BackupFabric.
+ */
+ interface WithBackupFabric {
+ /**
+ * Specifies vaultName, resourceGroupName, fabricName.
+ * @param vaultName The name of the recovery services vault
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present
+ * @param fabricName Fabric name associated with the container
+ * @return the next definition stage
+ */
+ WithCreate withExistingBackupFabric(String vaultName, String resourceGroupName, String fabricName);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource definition allowing to specify ETag.
+ */
+ interface WithETag {
+ /**
+ * Specifies eTag.
+ * @param eTag Optional ETag
+ * @return the next definition stage
+ */
+ WithCreate withETag(String eTag);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties ProtectionContainerResource properties
+ * @return the next definition stage
+ */
+ WithCreate withProperties(ProtectionContainerInner properties);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * 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, DefinitionStages.WithETag, DefinitionStages.WithLocation, DefinitionStages.WithProperties, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a BackupFabricVaultProtectionContainerResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithETag, UpdateStages.WithLocation, UpdateStages.WithProperties, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of BackupFabricVaultProtectionContainerResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource update allowing to specify ETag.
+ */
+ interface WithETag {
+ /**
+ * Specifies eTag.
+ * @param eTag Optional ETag
+ * @return the next update stage
+ */
+ Update withETag(String eTag);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties ProtectionContainerResource properties
+ * @return the next update stage
+ */
+ Update withProperties(ProtectionContainerInner properties);
+ }
+
+ /**
+ * The stage of the backupfabricvaultprotectioncontainerresource update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupItemType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupItemType.java
new file mode 100644
index 000000000000..5f85bda77c11
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupItemType.java
@@ -0,0 +1,82 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BackupItemType.
+ */
+public final class BackupItemType extends ExpandableStringEnum {
+ /** Static value Invalid for BackupItemType. */
+ public static final BackupItemType INVALID = fromString("Invalid");
+
+ /** Static value VM for BackupItemType. */
+ public static final BackupItemType VM = fromString("VM");
+
+ /** Static value FileFolder for BackupItemType. */
+ public static final BackupItemType FILE_FOLDER = fromString("FileFolder");
+
+ /** Static value AzureSqlDb for BackupItemType. */
+ public static final BackupItemType AZURE_SQL_DB = fromString("AzureSqlDb");
+
+ /** Static value SQLDB for BackupItemType. */
+ public static final BackupItemType SQLDB = fromString("SQLDB");
+
+ /** Static value Exchange for BackupItemType. */
+ public static final BackupItemType EXCHANGE = fromString("Exchange");
+
+ /** Static value Sharepoint for BackupItemType. */
+ public static final BackupItemType SHAREPOINT = fromString("Sharepoint");
+
+ /** Static value VMwareVM for BackupItemType. */
+ public static final BackupItemType VMWARE_VM = fromString("VMwareVM");
+
+ /** Static value SystemState for BackupItemType. */
+ public static final BackupItemType SYSTEM_STATE = fromString("SystemState");
+
+ /** Static value Client for BackupItemType. */
+ public static final BackupItemType CLIENT = fromString("Client");
+
+ /** Static value GenericDataSource for BackupItemType. */
+ public static final BackupItemType GENERIC_DATA_SOURCE = fromString("GenericDataSource");
+
+ /** Static value SQLDataBase for BackupItemType. */
+ public static final BackupItemType SQLDATA_BASE = fromString("SQLDataBase");
+
+ /** Static value AzureFileShare for BackupItemType. */
+ public static final BackupItemType AZURE_FILE_SHARE = fromString("AzureFileShare");
+
+ /** Static value SAPHanaDatabase for BackupItemType. */
+ public static final BackupItemType SAPHANA_DATABASE = fromString("SAPHanaDatabase");
+
+ /** Static value SAPAseDatabase for BackupItemType. */
+ public static final BackupItemType SAPASE_DATABASE = fromString("SAPAseDatabase");
+
+ /**
+ * Creates or finds a BackupItemType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BackupItemType
+ */
+ @JsonCreator
+ public static BackupItemType fromString(String name) {
+ return fromString(name, BackupItemType.class);
+ }
+
+ /**
+ * @return known BackupItemType values
+ */
+ public static Collection values() {
+ return values(BackupItemType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupJobs.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupJobs.java
new file mode 100644
index 000000000000..23ff3b6c7ff5
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupJobs.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupJobsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupJobs.
+ */
+public interface BackupJobs extends HasInner {
+ /**
+ * Provides a pageable list of jobs.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementType.java
new file mode 100644
index 000000000000..ef1cdfaf8c92
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementType.java
@@ -0,0 +1,64 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BackupManagementType.
+ */
+public final class BackupManagementType extends ExpandableStringEnum {
+ /** Static value Invalid for BackupManagementType. */
+ public static final BackupManagementType INVALID = fromString("Invalid");
+
+ /** Static value AzureIaasVM for BackupManagementType. */
+ public static final BackupManagementType AZURE_IAAS_VM = fromString("AzureIaasVM");
+
+ /** Static value MAB for BackupManagementType. */
+ public static final BackupManagementType MAB = fromString("MAB");
+
+ /** Static value DPM for BackupManagementType. */
+ public static final BackupManagementType DPM = fromString("DPM");
+
+ /** Static value AzureBackupServer for BackupManagementType. */
+ public static final BackupManagementType AZURE_BACKUP_SERVER = fromString("AzureBackupServer");
+
+ /** Static value AzureSql for BackupManagementType. */
+ public static final BackupManagementType AZURE_SQL = fromString("AzureSql");
+
+ /** Static value AzureStorage for BackupManagementType. */
+ public static final BackupManagementType AZURE_STORAGE = fromString("AzureStorage");
+
+ /** Static value AzureWorkload for BackupManagementType. */
+ public static final BackupManagementType AZURE_WORKLOAD = fromString("AzureWorkload");
+
+ /** Static value DefaultBackup for BackupManagementType. */
+ public static final BackupManagementType DEFAULT_BACKUP = fromString("DefaultBackup");
+
+ /**
+ * Creates or finds a BackupManagementType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BackupManagementType
+ */
+ @JsonCreator
+ public static BackupManagementType fromString(String name) {
+ return fromString(name, BackupManagementType.class);
+ }
+
+ /**
+ * @return known BackupManagementType values
+ */
+ public static Collection values() {
+ return values(BackupManagementType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementUsage.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementUsage.java
new file mode 100644
index 000000000000..45c41984b6e6
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupManagementUsage.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupManagementUsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing BackupManagementUsage.
+ */
+public interface BackupManagementUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Long currentValue();
+
+ /**
+ * @return the limit value.
+ */
+ Long limit();
+
+ /**
+ * @return the name value.
+ */
+ NameInfo name();
+
+ /**
+ * @return the nextResetTime value.
+ */
+ DateTime nextResetTime();
+
+ /**
+ * @return the quotaPeriod value.
+ */
+ String quotaPeriod();
+
+ /**
+ * @return the unit value.
+ */
+ UsagesUnit unit();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationResults.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationResults.java
new file mode 100644
index 000000000000..fa525c34fb61
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationResults.java
@@ -0,0 +1,35 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupOperationResultsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupOperationResults.
+ */
+public interface BackupOperationResults extends HasInner {
+ /**
+ * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the
+ status code in the response would be Accepted. It will continue to be in this state till it reaches completion. On
+ successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID is
+ part of the Location header of the operation response.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getAsync(String vaultName, String resourceGroupName, String operationId);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationStatuses.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationStatuses.java
new file mode 100644
index 000000000000..6c5a09fc5046
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupOperationStatuses.java
@@ -0,0 +1,34 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupOperationStatusesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupOperationStatuses.
+ */
+public interface BackupOperationStatuses extends HasInner {
+ /**
+ * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed
+ or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations
+ create jobs. This method returns the list of jobs when the operation is complete.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName, String operationId);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicies.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicies.java
new file mode 100644
index 000000000000..a88693403d80
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicies.java
@@ -0,0 +1,32 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupPolicies.
+ */
+public interface BackupPolicies extends HasInner {
+ /**
+ * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch
+ scoped results.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultOperationStatus.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultOperationStatus.java
new file mode 100644
index 000000000000..a7567a66bdd9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultOperationStatus.java
@@ -0,0 +1,60 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.OperationStatusInner;
+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.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing BackupPolicyVaultOperationStatus.
+ */
+public interface BackupPolicyVaultOperationStatus extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the error value.
+ */
+ OperationStatusError error();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ OperationStatusExtendedInfo properties();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the status value.
+ */
+ OperationStatusValues status();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultProtectionPolicyResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultProtectionPolicyResource.java
new file mode 100644
index 000000000000..ece0361aa077
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupPolicyVaultProtectionPolicyResource.java
@@ -0,0 +1,60 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyResourceInner;
+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.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import java.util.Map;
+
+/**
+ * Type representing BackupPolicyVaultProtectionPolicyResource.
+ */
+public interface BackupPolicyVaultProtectionPolicyResource extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ ProtectionPolicyInner properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectableItems.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectableItems.java
new file mode 100644
index 000000000000..0247c666f141
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectableItems.java
@@ -0,0 +1,32 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupProtectableItemsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupProtectableItems.
+ */
+public interface BackupProtectableItems extends HasInner {
+ /**
+ * Provides a pageable list of protectable objects within your subscription according to the query filter and the
+ pagination parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectedItems.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectedItems.java
new file mode 100644
index 000000000000..7c1b6ce0c116
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectedItems.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupProtectedItemsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupProtectedItems.
+ */
+public interface BackupProtectedItems extends HasInner {
+ /**
+ * Provides a pageable list of all items that are backed up within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionContainers.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionContainers.java
new file mode 100644
index 000000000000..400001271c6b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionContainers.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupProtectionContainersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupProtectionContainers.
+ */
+public interface BackupProtectionContainers extends HasInner {
+ /**
+ * Lists the containers registered to Recovery Services Vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionIntents.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionIntents.java
new file mode 100644
index 000000000000..d617e978ea39
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupProtectionIntents.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupProtectionIntentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupProtectionIntents.
+ */
+public interface BackupProtectionIntents extends HasInner {
+ /**
+ * Provides a pageable list of all intents that are present within a vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequest.java
new file mode 100644
index 000000000000..9046179800c1
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequest.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for backup request. Workload-specific backup requests are derived
+ * from this class.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = BackupRequest.class)
+@JsonTypeName("BackupRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureFileShareBackupRequest", value = AzureFileShareBackupRequest.class),
+ @JsonSubTypes.Type(name = "AzureWorkloadBackupRequest", value = AzureWorkloadBackupRequest.class),
+ @JsonSubTypes.Type(name = "IaasVMBackupRequest", value = IaasVMBackupRequest.class)
+})
+public class BackupRequest {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequestResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequestResource.java
new file mode 100644
index 000000000000..8ec290f349f0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupRequestResource.java
@@ -0,0 +1,75 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * Base class for backup request. Workload-specific backup requests are derived
+ * from this class.
+ */
+@SkipParentValidation
+public class BackupRequestResource extends Resource {
+ /**
+ * BackupRequestResource properties.
+ */
+ @JsonProperty(value = "properties")
+ private BackupRequest properties;
+
+ /**
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String eTag;
+
+ /**
+ * Get backupRequestResource properties.
+ *
+ * @return the properties value
+ */
+ public BackupRequest properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set backupRequestResource properties.
+ *
+ * @param properties the properties value to set
+ * @return the BackupRequestResource object itself.
+ */
+ public BackupRequestResource withProperties(BackupRequest properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get optional ETag.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set optional ETag.
+ *
+ * @param eTag the eTag value to set
+ * @return the BackupRequestResource object itself.
+ */
+ public BackupRequestResource withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfig.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfig.java
new file mode 100644
index 000000000000..714403b0d8a9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfig.java
@@ -0,0 +1,101 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource storage details.
+ */
+public class BackupResourceConfig {
+ /**
+ * Storage type. Possible values include: 'Invalid', 'GeoRedundant',
+ * 'LocallyRedundant'.
+ */
+ @JsonProperty(value = "storageModelType")
+ private StorageType storageModelType;
+
+ /**
+ * Storage type. Possible values include: 'Invalid', 'GeoRedundant',
+ * 'LocallyRedundant'.
+ */
+ @JsonProperty(value = "storageType")
+ private StorageType storageType;
+
+ /**
+ * Locked or Unlocked. Once a machine is registered against a resource, the
+ * storageTypeState is always Locked. Possible values include: 'Invalid',
+ * 'Locked', 'Unlocked'.
+ */
+ @JsonProperty(value = "storageTypeState")
+ private StorageTypeState storageTypeState;
+
+ /**
+ * Get storage type. Possible values include: 'Invalid', 'GeoRedundant', 'LocallyRedundant'.
+ *
+ * @return the storageModelType value
+ */
+ public StorageType storageModelType() {
+ return this.storageModelType;
+ }
+
+ /**
+ * Set storage type. Possible values include: 'Invalid', 'GeoRedundant', 'LocallyRedundant'.
+ *
+ * @param storageModelType the storageModelType value to set
+ * @return the BackupResourceConfig object itself.
+ */
+ public BackupResourceConfig withStorageModelType(StorageType storageModelType) {
+ this.storageModelType = storageModelType;
+ return this;
+ }
+
+ /**
+ * Get storage type. Possible values include: 'Invalid', 'GeoRedundant', 'LocallyRedundant'.
+ *
+ * @return the storageType value
+ */
+ public StorageType storageType() {
+ return this.storageType;
+ }
+
+ /**
+ * Set storage type. Possible values include: 'Invalid', 'GeoRedundant', 'LocallyRedundant'.
+ *
+ * @param storageType the storageType value to set
+ * @return the BackupResourceConfig object itself.
+ */
+ public BackupResourceConfig withStorageType(StorageType storageType) {
+ this.storageType = storageType;
+ return this;
+ }
+
+ /**
+ * Get locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'Invalid', 'Locked', 'Unlocked'.
+ *
+ * @return the storageTypeState value
+ */
+ public StorageTypeState storageTypeState() {
+ return this.storageTypeState;
+ }
+
+ /**
+ * Set locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. Possible values include: 'Invalid', 'Locked', 'Unlocked'.
+ *
+ * @param storageTypeState the storageTypeState value to set
+ * @return the BackupResourceConfig object itself.
+ */
+ public BackupResourceConfig withStorageTypeState(StorageTypeState storageTypeState) {
+ this.storageTypeState = storageTypeState;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfigResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfigResource.java
new file mode 100644
index 000000000000..43ab14a64700
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceConfigResource.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceConfigResourceInner;
+import java.util.Map;
+
+/**
+ * Type representing BackupResourceConfigResource.
+ */
+public interface BackupResourceConfigResource extends HasInner, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ BackupResourceConfig properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceStorageConfigs.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceStorageConfigs.java
new file mode 100644
index 000000000000..f956822fb504
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceStorageConfigs.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceConfigResourceInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceStorageConfigsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupResourceStorageConfigs.
+ */
+public interface BackupResourceStorageConfigs extends HasInner {
+ /**
+ * Fetches resource storage config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateAsync(String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters);
+
+ /**
+ * Updates vault storage model type.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters Vault storage config request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable patchAsync(String vaultName, String resourceGroupName, BackupResourceConfigResourceInner parameters);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigResource.java
new file mode 100644
index 000000000000..f118093ada8b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigResource.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceVaultConfigResourceInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceVaultConfigInner;
+import java.util.Map;
+
+/**
+ * Type representing BackupResourceVaultConfigResource.
+ */
+public interface BackupResourceVaultConfigResource extends HasInner, HasManager {
+ /**
+ * @return the eTag value.
+ */
+ String eTag();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ BackupResourceVaultConfigInner properties();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigs.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigs.java
new file mode 100644
index 000000000000..6b4945ac0c4b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupResourceVaultConfigs.java
@@ -0,0 +1,54 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceVaultConfigResourceInner;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupResourceVaultConfigsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupResourceVaultConfigs.
+ */
+public interface BackupResourceVaultConfigs extends HasInner {
+ /**
+ * Fetches resource vault config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateAsync(String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters);
+
+ /**
+ * Updates vault security config.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param parameters resource config request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable putAsync(String vaultName, String resourceGroupName, BackupResourceVaultConfigResourceInner parameters);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatus.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatus.java
new file mode 100644
index 000000000000..d236c94bd1be
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatus.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupStatusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupStatus.
+ */
+public interface BackupStatus extends HasInner {
+ /**
+ * Get the container backup status.
+ *
+ * @param azureRegion Azure region to hit Api
+ * @param parameters Container Backup Status Request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String azureRegion, BackupStatusRequest parameters);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusRequest.java
new file mode 100644
index 000000000000..c5bd9abf187d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusRequest.java
@@ -0,0 +1,101 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * BackupStatus request.
+ */
+public class BackupStatusRequest {
+ /**
+ * Container Type - VM, SQLPaaS, DPM, AzureFileShare. Possible values
+ * include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB',
+ * 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client',
+ * 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase',
+ * 'SAPAseDatabase'.
+ */
+ @JsonProperty(value = "resourceType")
+ private DataSourceType resourceType;
+
+ /**
+ * Entire ARM resource id of the resource.
+ */
+ @JsonProperty(value = "resourceId")
+ private String resourceId;
+
+ /**
+ * Protectable Item Logical Name.
+ */
+ @JsonProperty(value = "poLogicalName")
+ private String poLogicalName;
+
+ /**
+ * Get container Type - VM, SQLPaaS, DPM, AzureFileShare. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @return the resourceType value
+ */
+ public DataSourceType resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set container Type - VM, SQLPaaS, DPM, AzureFileShare. Possible values include: 'Invalid', 'VM', 'FileFolder', 'AzureSqlDb', 'SQLDB', 'Exchange', 'Sharepoint', 'VMwareVM', 'SystemState', 'Client', 'GenericDataSource', 'SQLDataBase', 'AzureFileShare', 'SAPHanaDatabase', 'SAPAseDatabase'.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the BackupStatusRequest object itself.
+ */
+ public BackupStatusRequest withResourceType(DataSourceType resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get entire ARM resource id of the resource.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set entire ARM resource id of the resource.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the BackupStatusRequest object itself.
+ */
+ public BackupStatusRequest withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get protectable Item Logical Name.
+ *
+ * @return the poLogicalName value
+ */
+ public String poLogicalName() {
+ return this.poLogicalName;
+ }
+
+ /**
+ * Set protectable Item Logical Name.
+ *
+ * @param poLogicalName the poLogicalName value to set
+ * @return the BackupStatusRequest object itself.
+ */
+ public BackupStatusRequest withPoLogicalName(String poLogicalName) {
+ this.poLogicalName = poLogicalName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusResponse.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusResponse.java
new file mode 100644
index 000000000000..18a63f37b3d0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupStatusResponse.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupStatusResponseInner;
+
+/**
+ * Type representing BackupStatusResponse.
+ */
+public interface BackupStatusResponse extends HasInner, HasManager {
+ /**
+ * @return the containerName value.
+ */
+ String containerName();
+
+ /**
+ * @return the errorCode value.
+ */
+ String errorCode();
+
+ /**
+ * @return the errorMessage value.
+ */
+ String errorMessage();
+
+ /**
+ * @return the fabricName value.
+ */
+ FabricName fabricName();
+
+ /**
+ * @return the policyName value.
+ */
+ String policyName();
+
+ /**
+ * @return the protectedItemName value.
+ */
+ String protectedItemName();
+
+ /**
+ * @return the protectionStatus value.
+ */
+ ProtectionStatus protectionStatus();
+
+ /**
+ * @return the registrationStatus value.
+ */
+ String registrationStatus();
+
+ /**
+ * @return the vaultId value.
+ */
+ String vaultId();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupType.java
new file mode 100644
index 000000000000..15bac2819e38
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupType.java
@@ -0,0 +1,52 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BackupType.
+ */
+public final class BackupType extends ExpandableStringEnum {
+ /** Static value Invalid for BackupType. */
+ public static final BackupType INVALID = fromString("Invalid");
+
+ /** Static value Full for BackupType. */
+ public static final BackupType FULL = fromString("Full");
+
+ /** Static value Differential for BackupType. */
+ public static final BackupType DIFFERENTIAL = fromString("Differential");
+
+ /** Static value Log for BackupType. */
+ public static final BackupType LOG = fromString("Log");
+
+ /** Static value CopyOnlyFull for BackupType. */
+ public static final BackupType COPY_ONLY_FULL = fromString("CopyOnlyFull");
+
+ /**
+ * Creates or finds a BackupType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BackupType
+ */
+ @JsonCreator
+ public static BackupType fromString(String name) {
+ return fromString(name, BackupType.class);
+ }
+
+ /**
+ * @return known BackupType values
+ */
+ public static Collection values() {
+ return values(BackupType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupUsageSummaries.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupUsageSummaries.java
new file mode 100644
index 000000000000..536abb48984a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupUsageSummaries.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupUsageSummariesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupUsageSummaries.
+ */
+public interface BackupUsageSummaries extends HasInner {
+ /**
+ * Fetches the backup management usage summaries of the vault.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String vaultName, String resourceGroupName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupWorkloadItems.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupWorkloadItems.java
new file mode 100644
index 000000000000..6672d37080a8
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/BackupWorkloadItems.java
@@ -0,0 +1,34 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupWorkloadItemsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupWorkloadItems.
+ */
+public interface BackupWorkloadItems extends HasInner {
+ /**
+ * Provides a pageable list of workload item of a specific container according to the query filter and the pagination
+ parameters.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the container.
+ * @param containerName Name of the container.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String vaultName, final String resourceGroupName, final String fabricName, final String containerName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Backups.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Backups.java
new file mode 100644
index 000000000000..345106cb2235
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Backups.java
@@ -0,0 +1,36 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.BackupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Backups.
+ */
+public interface Backups extends HasInner {
+ /**
+ * Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the
+ operation, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backup item.
+ * @param containerName Container name associated with the backup item.
+ * @param protectedItemName Backup item for which backup needs to be triggered.
+ * @param parameters resource backup request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable triggerAsync(String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName, BackupRequestResource parameters);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryDisplay.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryDisplay.java
new file mode 100644
index 000000000000..c638bcbcaaad
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryDisplay.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Localized display information of an operation.
+ */
+public class ClientDiscoveryDisplay {
+ /**
+ * Name of the provider for display purposes.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * ResourceType for which this Operation can be performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Operations Name itself.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Description of the operation having details of what operation is about.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get name of the provider for display purposes.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set name of the provider for display purposes.
+ *
+ * @param provider the provider value to set
+ * @return the ClientDiscoveryDisplay object itself.
+ */
+ public ClientDiscoveryDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resourceType for which this Operation can be performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resourceType for which this Operation can be performed.
+ *
+ * @param resource the resource value to set
+ * @return the ClientDiscoveryDisplay object itself.
+ */
+ public ClientDiscoveryDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operations Name itself.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operations Name itself.
+ *
+ * @param operation the operation value to set
+ * @return the ClientDiscoveryDisplay object itself.
+ */
+ public ClientDiscoveryDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of the operation having details of what operation is about.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the operation having details of what operation is about.
+ *
+ * @param description the description value to set
+ * @return the ClientDiscoveryDisplay object itself.
+ */
+ public ClientDiscoveryDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForLogSpecification.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForLogSpecification.java
new file mode 100644
index 000000000000..8028823370b1
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForLogSpecification.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class to represent shoebox log specification in json client discovery.
+ */
+public class ClientDiscoveryForLogSpecification {
+ /**
+ * Name for shoebox log specification.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Localized display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * blob duration of shoebox log specification.
+ */
+ @JsonProperty(value = "blobDuration")
+ private String blobDuration;
+
+ /**
+ * Get name for shoebox log specification.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name for shoebox log specification.
+ *
+ * @param name the name value to set
+ * @return the ClientDiscoveryForLogSpecification object itself.
+ */
+ public ClientDiscoveryForLogSpecification withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get localized display name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set localized display name.
+ *
+ * @param displayName the displayName value to set
+ * @return the ClientDiscoveryForLogSpecification object itself.
+ */
+ public ClientDiscoveryForLogSpecification withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get blob duration of shoebox log specification.
+ *
+ * @return the blobDuration value
+ */
+ public String blobDuration() {
+ return this.blobDuration;
+ }
+
+ /**
+ * Set blob duration of shoebox log specification.
+ *
+ * @param blobDuration the blobDuration value to set
+ * @return the ClientDiscoveryForLogSpecification object itself.
+ */
+ public ClientDiscoveryForLogSpecification withBlobDuration(String blobDuration) {
+ this.blobDuration = blobDuration;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForProperties.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForProperties.java
new file mode 100644
index 000000000000..ecf26ba55307
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForProperties.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class to represent shoebox properties in json client discovery.
+ */
+public class ClientDiscoveryForProperties {
+ /**
+ * Operation properties.
+ */
+ @JsonProperty(value = "serviceSpecification")
+ private ClientDiscoveryForServiceSpecification serviceSpecification;
+
+ /**
+ * Get operation properties.
+ *
+ * @return the serviceSpecification value
+ */
+ public ClientDiscoveryForServiceSpecification serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set operation properties.
+ *
+ * @param serviceSpecification the serviceSpecification value to set
+ * @return the ClientDiscoveryForProperties object itself.
+ */
+ public ClientDiscoveryForProperties withServiceSpecification(ClientDiscoveryForServiceSpecification serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForServiceSpecification.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForServiceSpecification.java
new file mode 100644
index 000000000000..8268b66effc9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryForServiceSpecification.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class to represent shoebox service specification in json client discovery.
+ */
+public class ClientDiscoveryForServiceSpecification {
+ /**
+ * List of log specifications of this operation.
+ */
+ @JsonProperty(value = "logSpecifications")
+ private List logSpecifications;
+
+ /**
+ * Get list of log specifications of this operation.
+ *
+ * @return the logSpecifications value
+ */
+ public List logSpecifications() {
+ return this.logSpecifications;
+ }
+
+ /**
+ * Set list of log specifications of this operation.
+ *
+ * @param logSpecifications the logSpecifications value to set
+ * @return the ClientDiscoveryForServiceSpecification object itself.
+ */
+ public ClientDiscoveryForServiceSpecification withLogSpecifications(List logSpecifications) {
+ this.logSpecifications = logSpecifications;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryValueForSingleApi.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryValueForSingleApi.java
new file mode 100644
index 000000000000..3c86c35e968f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientDiscoveryValueForSingleApi.java
@@ -0,0 +1,42 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryServicesManager;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ClientDiscoveryValueForSingleApiInner;
+
+/**
+ * Type representing ClientDiscoveryValueForSingleApi.
+ */
+public interface ClientDiscoveryValueForSingleApi extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ ClientDiscoveryDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ ClientDiscoveryForProperties properties();
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientScriptForConnect.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientScriptForConnect.java
new file mode 100644
index 000000000000..6f5cca1abc0e
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ClientScriptForConnect.java
@@ -0,0 +1,156 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Client script details for file / folder restore.
+ */
+public class ClientScriptForConnect {
+ /**
+ * File content of the client script for file / folder restore.
+ */
+ @JsonProperty(value = "scriptContent")
+ private String scriptContent;
+
+ /**
+ * File extension of the client script for file / folder restore - .ps1 ,
+ * .sh , etc.
+ */
+ @JsonProperty(value = "scriptExtension")
+ private String scriptExtension;
+
+ /**
+ * OS type - Windows, Linux etc. for which this file / folder restore
+ * client script works.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * URL of Executable from where to source the content. If this is not null
+ * then ScriptContent should not be used.
+ */
+ @JsonProperty(value = "url")
+ private String url;
+
+ /**
+ * Mandatory suffix that should be added to the name of script that is
+ * given for download to user.
+ * If its null or empty then , ignore it.
+ */
+ @JsonProperty(value = "scriptNameSuffix")
+ private String scriptNameSuffix;
+
+ /**
+ * Get file content of the client script for file / folder restore.
+ *
+ * @return the scriptContent value
+ */
+ public String scriptContent() {
+ return this.scriptContent;
+ }
+
+ /**
+ * Set file content of the client script for file / folder restore.
+ *
+ * @param scriptContent the scriptContent value to set
+ * @return the ClientScriptForConnect object itself.
+ */
+ public ClientScriptForConnect withScriptContent(String scriptContent) {
+ this.scriptContent = scriptContent;
+ return this;
+ }
+
+ /**
+ * Get file extension of the client script for file / folder restore - .ps1 , .sh , etc.
+ *
+ * @return the scriptExtension value
+ */
+ public String scriptExtension() {
+ return this.scriptExtension;
+ }
+
+ /**
+ * Set file extension of the client script for file / folder restore - .ps1 , .sh , etc.
+ *
+ * @param scriptExtension the scriptExtension value to set
+ * @return the ClientScriptForConnect object itself.
+ */
+ public ClientScriptForConnect withScriptExtension(String scriptExtension) {
+ this.scriptExtension = scriptExtension;
+ return this;
+ }
+
+ /**
+ * Get oS type - Windows, Linux etc. for which this file / folder restore client script works.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set oS type - Windows, Linux etc. for which this file / folder restore client script works.
+ *
+ * @param osType the osType value to set
+ * @return the ClientScriptForConnect object itself.
+ */
+ public ClientScriptForConnect withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get uRL of Executable from where to source the content. If this is not null then ScriptContent should not be used.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Set uRL of Executable from where to source the content. If this is not null then ScriptContent should not be used.
+ *
+ * @param url the url value to set
+ * @return the ClientScriptForConnect object itself.
+ */
+ public ClientScriptForConnect withUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Get mandatory suffix that should be added to the name of script that is given for download to user.
+ If its null or empty then , ignore it.
+ *
+ * @return the scriptNameSuffix value
+ */
+ public String scriptNameSuffix() {
+ return this.scriptNameSuffix;
+ }
+
+ /**
+ * Set mandatory suffix that should be added to the name of script that is given for download to user.
+ If its null or empty then , ignore it.
+ *
+ * @param scriptNameSuffix the scriptNameSuffix value to set
+ * @return the ClientScriptForConnect object itself.
+ */
+ public ClientScriptForConnect withScriptNameSuffix(String scriptNameSuffix) {
+ this.scriptNameSuffix = scriptNameSuffix;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerIdentityInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerIdentityInfo.java
new file mode 100644
index 000000000000..f2bec2735dd6
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerIdentityInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Container identity information.
+ */
+public class ContainerIdentityInfo {
+ /**
+ * Unique name of the container.
+ */
+ @JsonProperty(value = "uniqueName")
+ private String uniqueName;
+
+ /**
+ * Protection container identity - AAD Tenant.
+ */
+ @JsonProperty(value = "aadTenantId")
+ private String aadTenantId;
+
+ /**
+ * Protection container identity - AAD Service Principal.
+ */
+ @JsonProperty(value = "servicePrincipalClientId")
+ private String servicePrincipalClientId;
+
+ /**
+ * Protection container identity - Audience.
+ */
+ @JsonProperty(value = "audience")
+ private String audience;
+
+ /**
+ * Get unique name of the container.
+ *
+ * @return the uniqueName value
+ */
+ public String uniqueName() {
+ return this.uniqueName;
+ }
+
+ /**
+ * Set unique name of the container.
+ *
+ * @param uniqueName the uniqueName value to set
+ * @return the ContainerIdentityInfo object itself.
+ */
+ public ContainerIdentityInfo withUniqueName(String uniqueName) {
+ this.uniqueName = uniqueName;
+ return this;
+ }
+
+ /**
+ * Get protection container identity - AAD Tenant.
+ *
+ * @return the aadTenantId value
+ */
+ public String aadTenantId() {
+ return this.aadTenantId;
+ }
+
+ /**
+ * Set protection container identity - AAD Tenant.
+ *
+ * @param aadTenantId the aadTenantId value to set
+ * @return the ContainerIdentityInfo object itself.
+ */
+ public ContainerIdentityInfo withAadTenantId(String aadTenantId) {
+ this.aadTenantId = aadTenantId;
+ return this;
+ }
+
+ /**
+ * Get protection container identity - AAD Service Principal.
+ *
+ * @return the servicePrincipalClientId value
+ */
+ public String servicePrincipalClientId() {
+ return this.servicePrincipalClientId;
+ }
+
+ /**
+ * Set protection container identity - AAD Service Principal.
+ *
+ * @param servicePrincipalClientId the servicePrincipalClientId value to set
+ * @return the ContainerIdentityInfo object itself.
+ */
+ public ContainerIdentityInfo withServicePrincipalClientId(String servicePrincipalClientId) {
+ this.servicePrincipalClientId = servicePrincipalClientId;
+ return this;
+ }
+
+ /**
+ * Get protection container identity - Audience.
+ *
+ * @return the audience value
+ */
+ public String audience() {
+ return this.audience;
+ }
+
+ /**
+ * Set protection container identity - Audience.
+ *
+ * @param audience the audience value to set
+ * @return the ContainerIdentityInfo object itself.
+ */
+ public ContainerIdentityInfo withAudience(String audience) {
+ this.audience = audience;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerType.java
new file mode 100644
index 000000000000..1c71d403e458
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ContainerType.java
@@ -0,0 +1,82 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ContainerType.
+ */
+public final class ContainerType extends ExpandableStringEnum {
+ /** Static value Invalid for ContainerType. */
+ public static final ContainerType INVALID = fromString("Invalid");
+
+ /** Static value Unknown for ContainerType. */
+ public static final ContainerType UNKNOWN = fromString("Unknown");
+
+ /** Static value IaasVMContainer for ContainerType. */
+ public static final ContainerType IAAS_VMCONTAINER = fromString("IaasVMContainer");
+
+ /** Static value IaasVMServiceContainer for ContainerType. */
+ public static final ContainerType IAAS_VMSERVICE_CONTAINER = fromString("IaasVMServiceContainer");
+
+ /** Static value DPMContainer for ContainerType. */
+ public static final ContainerType DPMCONTAINER = fromString("DPMContainer");
+
+ /** Static value AzureBackupServerContainer for ContainerType. */
+ public static final ContainerType AZURE_BACKUP_SERVER_CONTAINER = fromString("AzureBackupServerContainer");
+
+ /** Static value MABContainer for ContainerType. */
+ public static final ContainerType MABCONTAINER = fromString("MABContainer");
+
+ /** Static value Cluster for ContainerType. */
+ public static final ContainerType CLUSTER = fromString("Cluster");
+
+ /** Static value AzureSqlContainer for ContainerType. */
+ public static final ContainerType AZURE_SQL_CONTAINER = fromString("AzureSqlContainer");
+
+ /** Static value Windows for ContainerType. */
+ public static final ContainerType WINDOWS = fromString("Windows");
+
+ /** Static value VCenter for ContainerType. */
+ public static final ContainerType VCENTER = fromString("VCenter");
+
+ /** Static value VMAppContainer for ContainerType. */
+ public static final ContainerType VMAPP_CONTAINER = fromString("VMAppContainer");
+
+ /** Static value SQLAGWorkLoadContainer for ContainerType. */
+ public static final ContainerType SQLAGWORK_LOAD_CONTAINER = fromString("SQLAGWorkLoadContainer");
+
+ /** Static value StorageContainer for ContainerType. */
+ public static final ContainerType STORAGE_CONTAINER = fromString("StorageContainer");
+
+ /** Static value GenericContainer for ContainerType. */
+ public static final ContainerType GENERIC_CONTAINER = fromString("GenericContainer");
+
+ /**
+ * Creates or finds a ContainerType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ContainerType
+ */
+ @JsonCreator
+ public static ContainerType fromString(String name) {
+ return fromString(name, ContainerType.class);
+ }
+
+ /**
+ * @return known ContainerType values
+ */
+ public static Collection values() {
+ return values(ContainerType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CopyOptions.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CopyOptions.java
new file mode 100644
index 000000000000..8518177e6111
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CopyOptions.java
@@ -0,0 +1,52 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CopyOptions.
+ */
+public final class CopyOptions extends ExpandableStringEnum {
+ /** Static value Invalid for CopyOptions. */
+ public static final CopyOptions INVALID = fromString("Invalid");
+
+ /** Static value CreateCopy for CopyOptions. */
+ public static final CopyOptions CREATE_COPY = fromString("CreateCopy");
+
+ /** Static value Skip for CopyOptions. */
+ public static final CopyOptions SKIP = fromString("Skip");
+
+ /** Static value Overwrite for CopyOptions. */
+ public static final CopyOptions OVERWRITE = fromString("Overwrite");
+
+ /** Static value FailOnConflict for CopyOptions. */
+ public static final CopyOptions FAIL_ON_CONFLICT = fromString("FailOnConflict");
+
+ /**
+ * Creates or finds a CopyOptions from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CopyOptions
+ */
+ @JsonCreator
+ public static CopyOptions fromString(String name) {
+ return fromString(name, CopyOptions.class);
+ }
+
+ /**
+ * @return known CopyOptions values
+ */
+ public static Collection values() {
+ return values(CopyOptions.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CreateMode.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CreateMode.java
new file mode 100644
index 000000000000..8474e4ab58db
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/CreateMode.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CreateMode.
+ */
+public final class CreateMode extends ExpandableStringEnum {
+ /** Static value Invalid for CreateMode. */
+ public static final CreateMode INVALID = fromString("Invalid");
+
+ /** Static value Default for CreateMode. */
+ public static final CreateMode DEFAULT = fromString("Default");
+
+ /** Static value Recover for CreateMode. */
+ public static final CreateMode RECOVER = fromString("Recover");
+
+ /**
+ * Creates or finds a CreateMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CreateMode
+ */
+ @JsonCreator
+ public static CreateMode fromString(String name) {
+ return fromString(name, CreateMode.class);
+ }
+
+ /**
+ * @return known CreateMode values
+ */
+ public static Collection values() {
+ return values(CreateMode.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMContainerExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMContainerExtendedInfo.java
new file mode 100644
index 000000000000..296a0e6209fa
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMContainerExtendedInfo.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information of the DPMContainer.
+ */
+public class DPMContainerExtendedInfo {
+ /**
+ * Last refresh time of the DPMContainer.
+ */
+ @JsonProperty(value = "lastRefreshedAt")
+ private DateTime lastRefreshedAt;
+
+ /**
+ * Get last refresh time of the DPMContainer.
+ *
+ * @return the lastRefreshedAt value
+ */
+ public DateTime lastRefreshedAt() {
+ return this.lastRefreshedAt;
+ }
+
+ /**
+ * Set last refresh time of the DPMContainer.
+ *
+ * @param lastRefreshedAt the lastRefreshedAt value to set
+ * @return the DPMContainerExtendedInfo object itself.
+ */
+ public DPMContainerExtendedInfo withLastRefreshedAt(DateTime lastRefreshedAt) {
+ this.lastRefreshedAt = lastRefreshedAt;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItem.java
new file mode 100644
index 000000000000..89eda5f5b7c7
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItem.java
@@ -0,0 +1,130 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * Additional information on Backup engine specific backup item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = DPMProtectedItem.class)
+@JsonTypeName("DPMProtectedItem")
+public class DPMProtectedItem extends ProtectedItemInner {
+ /**
+ * Friendly name of the managed item.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Backup Management server protecting this backup item.
+ */
+ @JsonProperty(value = "backupEngineName")
+ private String backupEngineName;
+
+ /**
+ * Protection state of the backup engine. Possible values include:
+ * 'Invalid', 'IRPending', 'Protected', 'ProtectionError',
+ * 'ProtectionStopped', 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectedItemState protectionState;
+
+ /**
+ * Extended info of the backup item.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private DPMProtectedItemExtendedInfo extendedInfo;
+
+ /**
+ * Get friendly name of the managed item.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the managed item.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the DPMProtectedItem object itself.
+ */
+ public DPMProtectedItem withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get backup Management server protecting this backup item.
+ *
+ * @return the backupEngineName value
+ */
+ public String backupEngineName() {
+ return this.backupEngineName;
+ }
+
+ /**
+ * Set backup Management server protecting this backup item.
+ *
+ * @param backupEngineName the backupEngineName value to set
+ * @return the DPMProtectedItem object itself.
+ */
+ public DPMProtectedItem withBackupEngineName(String backupEngineName) {
+ this.backupEngineName = backupEngineName;
+ return this;
+ }
+
+ /**
+ * Get protection state of the backup engine. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectedItemState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set protection state of the backup engine. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the DPMProtectedItem object itself.
+ */
+ public DPMProtectedItem withProtectionState(ProtectedItemState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get extended info of the backup item.
+ *
+ * @return the extendedInfo value
+ */
+ public DPMProtectedItemExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set extended info of the backup item.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the DPMProtectedItem object itself.
+ */
+ public DPMProtectedItem withExtendedInfo(DPMProtectedItemExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItemExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItemExtendedInfo.java
new file mode 100644
index 000000000000..fd8d25314618
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DPMProtectedItemExtendedInfo.java
@@ -0,0 +1,385 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information of DPM Protected item.
+ */
+public class DPMProtectedItemExtendedInfo {
+ /**
+ * Attribute to provide information on various DBs.
+ */
+ @JsonProperty(value = "protectableObjectLoadPath")
+ private Map protectableObjectLoadPath;
+
+ /**
+ * To check if backup item is disk protected.
+ */
+ @JsonProperty(value = "protected")
+ private Boolean protectedProperty;
+
+ /**
+ * To check if backup item is cloud protected.
+ */
+ @JsonProperty(value = "isPresentOnCloud")
+ private Boolean isPresentOnCloud;
+
+ /**
+ * Last backup status information on backup item.
+ */
+ @JsonProperty(value = "lastBackupStatus")
+ private String lastBackupStatus;
+
+ /**
+ * Last refresh time on backup item.
+ */
+ @JsonProperty(value = "lastRefreshedAt")
+ private DateTime lastRefreshedAt;
+
+ /**
+ * Oldest cloud recovery point time.
+ */
+ @JsonProperty(value = "oldestRecoveryPoint")
+ private DateTime oldestRecoveryPoint;
+
+ /**
+ * cloud recovery point count.
+ */
+ @JsonProperty(value = "recoveryPointCount")
+ private Integer recoveryPointCount;
+
+ /**
+ * Oldest disk recovery point time.
+ */
+ @JsonProperty(value = "onPremiseOldestRecoveryPoint")
+ private DateTime onPremiseOldestRecoveryPoint;
+
+ /**
+ * latest disk recovery point time.
+ */
+ @JsonProperty(value = "onPremiseLatestRecoveryPoint")
+ private DateTime onPremiseLatestRecoveryPoint;
+
+ /**
+ * disk recovery point count.
+ */
+ @JsonProperty(value = "onPremiseRecoveryPointCount")
+ private Integer onPremiseRecoveryPointCount;
+
+ /**
+ * To check if backup item is collocated.
+ */
+ @JsonProperty(value = "isCollocated")
+ private Boolean isCollocated;
+
+ /**
+ * Protection group name of the backup item.
+ */
+ @JsonProperty(value = "protectionGroupName")
+ private String protectionGroupName;
+
+ /**
+ * Used Disk storage in bytes.
+ */
+ @JsonProperty(value = "diskStorageUsedInBytes")
+ private String diskStorageUsedInBytes;
+
+ /**
+ * total Disk storage in bytes.
+ */
+ @JsonProperty(value = "totalDiskStorageSizeInBytes")
+ private String totalDiskStorageSizeInBytes;
+
+ /**
+ * Get attribute to provide information on various DBs.
+ *
+ * @return the protectableObjectLoadPath value
+ */
+ public Map protectableObjectLoadPath() {
+ return this.protectableObjectLoadPath;
+ }
+
+ /**
+ * Set attribute to provide information on various DBs.
+ *
+ * @param protectableObjectLoadPath the protectableObjectLoadPath value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withProtectableObjectLoadPath(Map protectableObjectLoadPath) {
+ this.protectableObjectLoadPath = protectableObjectLoadPath;
+ return this;
+ }
+
+ /**
+ * Get to check if backup item is disk protected.
+ *
+ * @return the protectedProperty value
+ */
+ public Boolean protectedProperty() {
+ return this.protectedProperty;
+ }
+
+ /**
+ * Set to check if backup item is disk protected.
+ *
+ * @param protectedProperty the protectedProperty value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withProtectedProperty(Boolean protectedProperty) {
+ this.protectedProperty = protectedProperty;
+ return this;
+ }
+
+ /**
+ * Get to check if backup item is cloud protected.
+ *
+ * @return the isPresentOnCloud value
+ */
+ public Boolean isPresentOnCloud() {
+ return this.isPresentOnCloud;
+ }
+
+ /**
+ * Set to check if backup item is cloud protected.
+ *
+ * @param isPresentOnCloud the isPresentOnCloud value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withIsPresentOnCloud(Boolean isPresentOnCloud) {
+ this.isPresentOnCloud = isPresentOnCloud;
+ return this;
+ }
+
+ /**
+ * Get last backup status information on backup item.
+ *
+ * @return the lastBackupStatus value
+ */
+ public String lastBackupStatus() {
+ return this.lastBackupStatus;
+ }
+
+ /**
+ * Set last backup status information on backup item.
+ *
+ * @param lastBackupStatus the lastBackupStatus value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withLastBackupStatus(String lastBackupStatus) {
+ this.lastBackupStatus = lastBackupStatus;
+ return this;
+ }
+
+ /**
+ * Get last refresh time on backup item.
+ *
+ * @return the lastRefreshedAt value
+ */
+ public DateTime lastRefreshedAt() {
+ return this.lastRefreshedAt;
+ }
+
+ /**
+ * Set last refresh time on backup item.
+ *
+ * @param lastRefreshedAt the lastRefreshedAt value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withLastRefreshedAt(DateTime lastRefreshedAt) {
+ this.lastRefreshedAt = lastRefreshedAt;
+ return this;
+ }
+
+ /**
+ * Get oldest cloud recovery point time.
+ *
+ * @return the oldestRecoveryPoint value
+ */
+ public DateTime oldestRecoveryPoint() {
+ return this.oldestRecoveryPoint;
+ }
+
+ /**
+ * Set oldest cloud recovery point time.
+ *
+ * @param oldestRecoveryPoint the oldestRecoveryPoint value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withOldestRecoveryPoint(DateTime oldestRecoveryPoint) {
+ this.oldestRecoveryPoint = oldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get cloud recovery point count.
+ *
+ * @return the recoveryPointCount value
+ */
+ public Integer recoveryPointCount() {
+ return this.recoveryPointCount;
+ }
+
+ /**
+ * Set cloud recovery point count.
+ *
+ * @param recoveryPointCount the recoveryPointCount value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withRecoveryPointCount(Integer recoveryPointCount) {
+ this.recoveryPointCount = recoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get oldest disk recovery point time.
+ *
+ * @return the onPremiseOldestRecoveryPoint value
+ */
+ public DateTime onPremiseOldestRecoveryPoint() {
+ return this.onPremiseOldestRecoveryPoint;
+ }
+
+ /**
+ * Set oldest disk recovery point time.
+ *
+ * @param onPremiseOldestRecoveryPoint the onPremiseOldestRecoveryPoint value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withOnPremiseOldestRecoveryPoint(DateTime onPremiseOldestRecoveryPoint) {
+ this.onPremiseOldestRecoveryPoint = onPremiseOldestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get latest disk recovery point time.
+ *
+ * @return the onPremiseLatestRecoveryPoint value
+ */
+ public DateTime onPremiseLatestRecoveryPoint() {
+ return this.onPremiseLatestRecoveryPoint;
+ }
+
+ /**
+ * Set latest disk recovery point time.
+ *
+ * @param onPremiseLatestRecoveryPoint the onPremiseLatestRecoveryPoint value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withOnPremiseLatestRecoveryPoint(DateTime onPremiseLatestRecoveryPoint) {
+ this.onPremiseLatestRecoveryPoint = onPremiseLatestRecoveryPoint;
+ return this;
+ }
+
+ /**
+ * Get disk recovery point count.
+ *
+ * @return the onPremiseRecoveryPointCount value
+ */
+ public Integer onPremiseRecoveryPointCount() {
+ return this.onPremiseRecoveryPointCount;
+ }
+
+ /**
+ * Set disk recovery point count.
+ *
+ * @param onPremiseRecoveryPointCount the onPremiseRecoveryPointCount value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withOnPremiseRecoveryPointCount(Integer onPremiseRecoveryPointCount) {
+ this.onPremiseRecoveryPointCount = onPremiseRecoveryPointCount;
+ return this;
+ }
+
+ /**
+ * Get to check if backup item is collocated.
+ *
+ * @return the isCollocated value
+ */
+ public Boolean isCollocated() {
+ return this.isCollocated;
+ }
+
+ /**
+ * Set to check if backup item is collocated.
+ *
+ * @param isCollocated the isCollocated value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withIsCollocated(Boolean isCollocated) {
+ this.isCollocated = isCollocated;
+ return this;
+ }
+
+ /**
+ * Get protection group name of the backup item.
+ *
+ * @return the protectionGroupName value
+ */
+ public String protectionGroupName() {
+ return this.protectionGroupName;
+ }
+
+ /**
+ * Set protection group name of the backup item.
+ *
+ * @param protectionGroupName the protectionGroupName value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withProtectionGroupName(String protectionGroupName) {
+ this.protectionGroupName = protectionGroupName;
+ return this;
+ }
+
+ /**
+ * Get used Disk storage in bytes.
+ *
+ * @return the diskStorageUsedInBytes value
+ */
+ public String diskStorageUsedInBytes() {
+ return this.diskStorageUsedInBytes;
+ }
+
+ /**
+ * Set used Disk storage in bytes.
+ *
+ * @param diskStorageUsedInBytes the diskStorageUsedInBytes value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withDiskStorageUsedInBytes(String diskStorageUsedInBytes) {
+ this.diskStorageUsedInBytes = diskStorageUsedInBytes;
+ return this;
+ }
+
+ /**
+ * Get total Disk storage in bytes.
+ *
+ * @return the totalDiskStorageSizeInBytes value
+ */
+ public String totalDiskStorageSizeInBytes() {
+ return this.totalDiskStorageSizeInBytes;
+ }
+
+ /**
+ * Set total Disk storage in bytes.
+ *
+ * @param totalDiskStorageSizeInBytes the totalDiskStorageSizeInBytes value to set
+ * @return the DPMProtectedItemExtendedInfo object itself.
+ */
+ public DPMProtectedItemExtendedInfo withTotalDiskStorageSizeInBytes(String totalDiskStorageSizeInBytes) {
+ this.totalDiskStorageSizeInBytes = totalDiskStorageSizeInBytes;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionFormat.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionFormat.java
new file mode 100644
index 000000000000..fb4b68442153
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionFormat.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Daily retention format.
+ */
+public class DailyRetentionFormat {
+ /**
+ * List of days of the month.
+ */
+ @JsonProperty(value = "daysOfTheMonth")
+ private List daysOfTheMonth;
+
+ /**
+ * Get list of days of the month.
+ *
+ * @return the daysOfTheMonth value
+ */
+ public List daysOfTheMonth() {
+ return this.daysOfTheMonth;
+ }
+
+ /**
+ * Set list of days of the month.
+ *
+ * @param daysOfTheMonth the daysOfTheMonth value to set
+ * @return the DailyRetentionFormat object itself.
+ */
+ public DailyRetentionFormat withDaysOfTheMonth(List daysOfTheMonth) {
+ this.daysOfTheMonth = daysOfTheMonth;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionSchedule.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionSchedule.java
new file mode 100644
index 000000000000..ff29280711e1
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DailyRetentionSchedule.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Daily retention schedule.
+ */
+public class DailyRetentionSchedule {
+ /**
+ * Retention times of retention policy.
+ */
+ @JsonProperty(value = "retentionTimes")
+ private List retentionTimes;
+
+ /**
+ * Retention duration of retention Policy.
+ */
+ @JsonProperty(value = "retentionDuration")
+ private RetentionDuration retentionDuration;
+
+ /**
+ * Get retention times of retention policy.
+ *
+ * @return the retentionTimes value
+ */
+ public List retentionTimes() {
+ return this.retentionTimes;
+ }
+
+ /**
+ * Set retention times of retention policy.
+ *
+ * @param retentionTimes the retentionTimes value to set
+ * @return the DailyRetentionSchedule object itself.
+ */
+ public DailyRetentionSchedule withRetentionTimes(List retentionTimes) {
+ this.retentionTimes = retentionTimes;
+ return this;
+ }
+
+ /**
+ * Get retention duration of retention Policy.
+ *
+ * @return the retentionDuration value
+ */
+ public RetentionDuration retentionDuration() {
+ return this.retentionDuration;
+ }
+
+ /**
+ * Set retention duration of retention Policy.
+ *
+ * @param retentionDuration the retentionDuration value to set
+ * @return the DailyRetentionSchedule object itself.
+ */
+ public DailyRetentionSchedule withRetentionDuration(RetentionDuration retentionDuration) {
+ this.retentionDuration = retentionDuration;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DataSourceType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DataSourceType.java
new file mode 100644
index 000000000000..c0724c4a24b1
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DataSourceType.java
@@ -0,0 +1,82 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DataSourceType.
+ */
+public final class DataSourceType extends ExpandableStringEnum {
+ /** Static value Invalid for DataSourceType. */
+ public static final DataSourceType INVALID = fromString("Invalid");
+
+ /** Static value VM for DataSourceType. */
+ public static final DataSourceType VM = fromString("VM");
+
+ /** Static value FileFolder for DataSourceType. */
+ public static final DataSourceType FILE_FOLDER = fromString("FileFolder");
+
+ /** Static value AzureSqlDb for DataSourceType. */
+ public static final DataSourceType AZURE_SQL_DB = fromString("AzureSqlDb");
+
+ /** Static value SQLDB for DataSourceType. */
+ public static final DataSourceType SQLDB = fromString("SQLDB");
+
+ /** Static value Exchange for DataSourceType. */
+ public static final DataSourceType EXCHANGE = fromString("Exchange");
+
+ /** Static value Sharepoint for DataSourceType. */
+ public static final DataSourceType SHAREPOINT = fromString("Sharepoint");
+
+ /** Static value VMwareVM for DataSourceType. */
+ public static final DataSourceType VMWARE_VM = fromString("VMwareVM");
+
+ /** Static value SystemState for DataSourceType. */
+ public static final DataSourceType SYSTEM_STATE = fromString("SystemState");
+
+ /** Static value Client for DataSourceType. */
+ public static final DataSourceType CLIENT = fromString("Client");
+
+ /** Static value GenericDataSource for DataSourceType. */
+ public static final DataSourceType GENERIC_DATA_SOURCE = fromString("GenericDataSource");
+
+ /** Static value SQLDataBase for DataSourceType. */
+ public static final DataSourceType SQLDATA_BASE = fromString("SQLDataBase");
+
+ /** Static value AzureFileShare for DataSourceType. */
+ public static final DataSourceType AZURE_FILE_SHARE = fromString("AzureFileShare");
+
+ /** Static value SAPHanaDatabase for DataSourceType. */
+ public static final DataSourceType SAPHANA_DATABASE = fromString("SAPHanaDatabase");
+
+ /** Static value SAPAseDatabase for DataSourceType. */
+ public static final DataSourceType SAPASE_DATABASE = fromString("SAPAseDatabase");
+
+ /**
+ * Creates or finds a DataSourceType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DataSourceType
+ */
+ @JsonCreator
+ public static DataSourceType fromString(String name) {
+ return fromString(name, DataSourceType.class);
+ }
+
+ /**
+ * @return known DataSourceType values
+ */
+ public static Collection values() {
+ return values(DataSourceType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Day.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Day.java
new file mode 100644
index 000000000000..f01a55383c5a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/Day.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Day of the week.
+ */
+public class Day {
+ /**
+ * Date of the month.
+ */
+ @JsonProperty(value = "date")
+ private Integer dateProperty;
+
+ /**
+ * Whether Date is last date of month.
+ */
+ @JsonProperty(value = "isLast")
+ private Boolean isLast;
+
+ /**
+ * Get date of the month.
+ *
+ * @return the dateProperty value
+ */
+ public Integer dateProperty() {
+ return this.dateProperty;
+ }
+
+ /**
+ * Set date of the month.
+ *
+ * @param dateProperty the dateProperty value to set
+ * @return the Day object itself.
+ */
+ public Day withDateProperty(Integer dateProperty) {
+ this.dateProperty = dateProperty;
+ return this;
+ }
+
+ /**
+ * Get whether Date is last date of month.
+ *
+ * @return the isLast value
+ */
+ public Boolean isLast() {
+ return this.isLast;
+ }
+
+ /**
+ * Set whether Date is last date of month.
+ *
+ * @param isLast the isLast value to set
+ * @return the Day object itself.
+ */
+ public Day withIsLast(Boolean isLast) {
+ this.isLast = isLast;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DayOfWeek.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DayOfWeek.java
new file mode 100644
index 000000000000..577d308cc11a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DayOfWeek.java
@@ -0,0 +1,70 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DayOfWeek.
+ */
+public enum DayOfWeek {
+ /** Enum value Sunday. */
+ SUNDAY("Sunday"),
+
+ /** Enum value Monday. */
+ MONDAY("Monday"),
+
+ /** Enum value Tuesday. */
+ TUESDAY("Tuesday"),
+
+ /** Enum value Wednesday. */
+ WEDNESDAY("Wednesday"),
+
+ /** Enum value Thursday. */
+ THURSDAY("Thursday"),
+
+ /** Enum value Friday. */
+ FRIDAY("Friday"),
+
+ /** Enum value Saturday. */
+ SATURDAY("Saturday");
+
+ /** The actual serialized value for a DayOfWeek instance. */
+ private String value;
+
+ DayOfWeek(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DayOfWeek instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DayOfWeek object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DayOfWeek fromString(String value) {
+ DayOfWeek[] items = DayOfWeek.values();
+ for (DayOfWeek item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskExclusionProperties.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskExclusionProperties.java
new file mode 100644
index 000000000000..5c736ff50a69
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskExclusionProperties.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The DiskExclusionProperties model.
+ */
+public class DiskExclusionProperties {
+ /**
+ * List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.
+ */
+ @JsonProperty(value = "diskLunList")
+ private List diskLunList;
+
+ /**
+ * Flag to indicate whether DiskLunList is to be included/ excluded from
+ * backup.
+ */
+ @JsonProperty(value = "isInclusionList")
+ private Boolean isInclusionList;
+
+ /**
+ * Get list of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.
+ *
+ * @return the diskLunList value
+ */
+ public List diskLunList() {
+ return this.diskLunList;
+ }
+
+ /**
+ * Set list of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.
+ *
+ * @param diskLunList the diskLunList value to set
+ * @return the DiskExclusionProperties object itself.
+ */
+ public DiskExclusionProperties withDiskLunList(List diskLunList) {
+ this.diskLunList = diskLunList;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether DiskLunList is to be included/ excluded from backup.
+ *
+ * @return the isInclusionList value
+ */
+ public Boolean isInclusionList() {
+ return this.isInclusionList;
+ }
+
+ /**
+ * Set flag to indicate whether DiskLunList is to be included/ excluded from backup.
+ *
+ * @param isInclusionList the isInclusionList value to set
+ * @return the DiskExclusionProperties object itself.
+ */
+ public DiskExclusionProperties withIsInclusionList(Boolean isInclusionList) {
+ this.isInclusionList = isInclusionList;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskInformation.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskInformation.java
new file mode 100644
index 000000000000..07e03367f68b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DiskInformation.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Disk information.
+ */
+public class DiskInformation {
+ /**
+ * The lun property.
+ */
+ @JsonProperty(value = "lun")
+ private Integer lun;
+
+ /**
+ * The name property.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get the lun value.
+ *
+ * @return the lun value
+ */
+ public Integer lun() {
+ return this.lun;
+ }
+
+ /**
+ * Set the lun value.
+ *
+ * @param lun the lun value to set
+ * @return the DiskInformation object itself.
+ */
+ public DiskInformation withLun(Integer lun) {
+ this.lun = lun;
+ return this;
+ }
+
+ /**
+ * Get the name value.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name value.
+ *
+ * @param name the name value to set
+ * @return the DiskInformation object itself.
+ */
+ public DiskInformation withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DistributedNodesInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DistributedNodesInfo.java
new file mode 100644
index 000000000000..ca45e43babf6
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DistributedNodesInfo.java
@@ -0,0 +1,100 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This is used to represent the various nodes of the distributed container.
+ */
+public class DistributedNodesInfo {
+ /**
+ * Name of the node under a distributed container.
+ */
+ @JsonProperty(value = "nodeName")
+ private String nodeName;
+
+ /**
+ * Status of this Node.
+ * Failed | Succeeded.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Error Details if the Status is non-success.
+ */
+ @JsonProperty(value = "errorDetail")
+ private ErrorDetail errorDetail;
+
+ /**
+ * Get name of the node under a distributed container.
+ *
+ * @return the nodeName value
+ */
+ public String nodeName() {
+ return this.nodeName;
+ }
+
+ /**
+ * Set name of the node under a distributed container.
+ *
+ * @param nodeName the nodeName value to set
+ * @return the DistributedNodesInfo object itself.
+ */
+ public DistributedNodesInfo withNodeName(String nodeName) {
+ this.nodeName = nodeName;
+ return this;
+ }
+
+ /**
+ * Get status of this Node.
+ Failed | Succeeded.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of this Node.
+ Failed | Succeeded.
+ *
+ * @param status the status value to set
+ * @return the DistributedNodesInfo object itself.
+ */
+ public DistributedNodesInfo withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get error Details if the Status is non-success.
+ *
+ * @return the errorDetail value
+ */
+ public ErrorDetail errorDetail() {
+ return this.errorDetail;
+ }
+
+ /**
+ * Set error Details if the Status is non-success.
+ *
+ * @param errorDetail the errorDetail value to set
+ * @return the DistributedNodesInfo object itself.
+ */
+ public DistributedNodesInfo withErrorDetail(ErrorDetail errorDetail) {
+ this.errorDetail = errorDetail;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmBackupEngine.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmBackupEngine.java
new file mode 100644
index 000000000000..39c68f1e9d42
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmBackupEngine.java
@@ -0,0 +1,22 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Data Protection Manager (DPM) specific backup engine.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupEngineType", defaultImpl = DpmBackupEngine.class)
+@JsonTypeName("DpmBackupEngine")
+public class DpmBackupEngine extends BackupEngineBase {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmContainer.java
new file mode 100644
index 000000000000..d7caad183f3a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmContainer.java
@@ -0,0 +1,237 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+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;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * DPM workload-specific protection container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = DpmContainer.class)
+@JsonTypeName("DPMContainer")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureBackupServerContainer", value = AzureBackupServerContainer.class)
+})
+public class DpmContainer extends ProtectionContainerInner {
+ /**
+ * Specifies whether the container is re-registrable.
+ */
+ @JsonProperty(value = "canReRegister")
+ private Boolean canReRegister;
+
+ /**
+ * ID of container.
+ */
+ @JsonProperty(value = "containerId")
+ private String containerId;
+
+ /**
+ * Number of protected items in the BackupEngine.
+ */
+ @JsonProperty(value = "protectedItemCount")
+ private Long protectedItemCount;
+
+ /**
+ * Backup engine Agent version.
+ */
+ @JsonProperty(value = "dpmAgentVersion")
+ private String dpmAgentVersion;
+
+ /**
+ * List of BackupEngines protecting the container.
+ */
+ @JsonProperty(value = "dpmServers")
+ private List dpmServers;
+
+ /**
+ * To check if upgrade available.
+ */
+ @JsonProperty(value = "upgradeAvailable")
+ private Boolean upgradeAvailable;
+
+ /**
+ * Protection status of the container.
+ */
+ @JsonProperty(value = "protectionStatus")
+ private String protectionStatus;
+
+ /**
+ * Extended Info of the container.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private DPMContainerExtendedInfo extendedInfo;
+
+ /**
+ * Get specifies whether the container is re-registrable.
+ *
+ * @return the canReRegister value
+ */
+ public Boolean canReRegister() {
+ return this.canReRegister;
+ }
+
+ /**
+ * Set specifies whether the container is re-registrable.
+ *
+ * @param canReRegister the canReRegister value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withCanReRegister(Boolean canReRegister) {
+ this.canReRegister = canReRegister;
+ return this;
+ }
+
+ /**
+ * Get iD of container.
+ *
+ * @return the containerId value
+ */
+ public String containerId() {
+ return this.containerId;
+ }
+
+ /**
+ * Set iD of container.
+ *
+ * @param containerId the containerId value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withContainerId(String containerId) {
+ this.containerId = containerId;
+ return this;
+ }
+
+ /**
+ * Get number of protected items in the BackupEngine.
+ *
+ * @return the protectedItemCount value
+ */
+ public Long protectedItemCount() {
+ return this.protectedItemCount;
+ }
+
+ /**
+ * Set number of protected items in the BackupEngine.
+ *
+ * @param protectedItemCount the protectedItemCount value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withProtectedItemCount(Long protectedItemCount) {
+ this.protectedItemCount = protectedItemCount;
+ return this;
+ }
+
+ /**
+ * Get backup engine Agent version.
+ *
+ * @return the dpmAgentVersion value
+ */
+ public String dpmAgentVersion() {
+ return this.dpmAgentVersion;
+ }
+
+ /**
+ * Set backup engine Agent version.
+ *
+ * @param dpmAgentVersion the dpmAgentVersion value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withDpmAgentVersion(String dpmAgentVersion) {
+ this.dpmAgentVersion = dpmAgentVersion;
+ return this;
+ }
+
+ /**
+ * Get list of BackupEngines protecting the container.
+ *
+ * @return the dpmServers value
+ */
+ public List dpmServers() {
+ return this.dpmServers;
+ }
+
+ /**
+ * Set list of BackupEngines protecting the container.
+ *
+ * @param dpmServers the dpmServers value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withDpmServers(List dpmServers) {
+ this.dpmServers = dpmServers;
+ return this;
+ }
+
+ /**
+ * Get to check if upgrade available.
+ *
+ * @return the upgradeAvailable value
+ */
+ public Boolean upgradeAvailable() {
+ return this.upgradeAvailable;
+ }
+
+ /**
+ * Set to check if upgrade available.
+ *
+ * @param upgradeAvailable the upgradeAvailable value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withUpgradeAvailable(Boolean upgradeAvailable) {
+ this.upgradeAvailable = upgradeAvailable;
+ return this;
+ }
+
+ /**
+ * Get protection status of the container.
+ *
+ * @return the protectionStatus value
+ */
+ public String protectionStatus() {
+ return this.protectionStatus;
+ }
+
+ /**
+ * Set protection status of the container.
+ *
+ * @param protectionStatus the protectionStatus value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withProtectionStatus(String protectionStatus) {
+ this.protectionStatus = protectionStatus;
+ return this;
+ }
+
+ /**
+ * Get extended Info of the container.
+ *
+ * @return the extendedInfo value
+ */
+ public DPMContainerExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set extended Info of the container.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the DpmContainer object itself.
+ */
+ public DpmContainer withExtendedInfo(DPMContainerExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmErrorInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmErrorInfo.java
new file mode 100644
index 000000000000..bcab8f584edc
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmErrorInfo.java
@@ -0,0 +1,72 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DPM workload-specific error information.
+ */
+public class DpmErrorInfo {
+ /**
+ * Localized error string.
+ */
+ @JsonProperty(value = "errorString")
+ private String errorString;
+
+ /**
+ * List of localized recommendations for above error code.
+ */
+ @JsonProperty(value = "recommendations")
+ private List recommendations;
+
+ /**
+ * Get localized error string.
+ *
+ * @return the errorString value
+ */
+ public String errorString() {
+ return this.errorString;
+ }
+
+ /**
+ * Set localized error string.
+ *
+ * @param errorString the errorString value to set
+ * @return the DpmErrorInfo object itself.
+ */
+ public DpmErrorInfo withErrorString(String errorString) {
+ this.errorString = errorString;
+ return this;
+ }
+
+ /**
+ * Get list of localized recommendations for above error code.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+ /**
+ * Set list of localized recommendations for above error code.
+ *
+ * @param recommendations the recommendations value to set
+ * @return the DpmErrorInfo object itself.
+ */
+ public DpmErrorInfo withRecommendations(List recommendations) {
+ this.recommendations = recommendations;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJob.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJob.java
new file mode 100644
index 000000000000..a08e6de6d674
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJob.java
@@ -0,0 +1,234 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.Period;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobInner;
+
+/**
+ * DPM workload-specific job object.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "jobType", defaultImpl = DpmJob.class)
+@JsonTypeName("DpmJob")
+public class DpmJob extends JobInner {
+ /**
+ * Time elapsed for job.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * DPM server name managing the backup item or backup job.
+ */
+ @JsonProperty(value = "dpmServerName")
+ private String dpmServerName;
+
+ /**
+ * Name of cluster/server protecting current backup item, if any.
+ */
+ @JsonProperty(value = "containerName")
+ private String containerName;
+
+ /**
+ * Type of container.
+ */
+ @JsonProperty(value = "containerType")
+ private String containerType;
+
+ /**
+ * Type of backup item.
+ */
+ @JsonProperty(value = "workloadType")
+ private String workloadType;
+
+ /**
+ * The state/actions applicable on this job like cancel/retry.
+ */
+ @JsonProperty(value = "actionsInfo")
+ private List actionsInfo;
+
+ /**
+ * The errors.
+ */
+ @JsonProperty(value = "errorDetails")
+ private List errorDetails;
+
+ /**
+ * Additional information for this job.
+ */
+ @JsonProperty(value = "extendedInfo")
+ private DpmJobExtendedInfo extendedInfo;
+
+ /**
+ * Get time elapsed for job.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed for job.
+ *
+ * @param duration the duration value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get dPM server name managing the backup item or backup job.
+ *
+ * @return the dpmServerName value
+ */
+ public String dpmServerName() {
+ return this.dpmServerName;
+ }
+
+ /**
+ * Set dPM server name managing the backup item or backup job.
+ *
+ * @param dpmServerName the dpmServerName value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withDpmServerName(String dpmServerName) {
+ this.dpmServerName = dpmServerName;
+ return this;
+ }
+
+ /**
+ * Get name of cluster/server protecting current backup item, if any.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set name of cluster/server protecting current backup item, if any.
+ *
+ * @param containerName the containerName value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get type of container.
+ *
+ * @return the containerType value
+ */
+ public String containerType() {
+ return this.containerType;
+ }
+
+ /**
+ * Set type of container.
+ *
+ * @param containerType the containerType value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withContainerType(String containerType) {
+ this.containerType = containerType;
+ return this;
+ }
+
+ /**
+ * Get type of backup item.
+ *
+ * @return the workloadType value
+ */
+ public String workloadType() {
+ return this.workloadType;
+ }
+
+ /**
+ * Set type of backup item.
+ *
+ * @param workloadType the workloadType value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withWorkloadType(String workloadType) {
+ this.workloadType = workloadType;
+ return this;
+ }
+
+ /**
+ * Get the state/actions applicable on this job like cancel/retry.
+ *
+ * @return the actionsInfo value
+ */
+ public List actionsInfo() {
+ return this.actionsInfo;
+ }
+
+ /**
+ * Set the state/actions applicable on this job like cancel/retry.
+ *
+ * @param actionsInfo the actionsInfo value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withActionsInfo(List actionsInfo) {
+ this.actionsInfo = actionsInfo;
+ return this;
+ }
+
+ /**
+ * Get the errors.
+ *
+ * @return the errorDetails value
+ */
+ public List errorDetails() {
+ return this.errorDetails;
+ }
+
+ /**
+ * Set the errors.
+ *
+ * @param errorDetails the errorDetails value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withErrorDetails(List errorDetails) {
+ this.errorDetails = errorDetails;
+ return this;
+ }
+
+ /**
+ * Get additional information for this job.
+ *
+ * @return the extendedInfo value
+ */
+ public DpmJobExtendedInfo extendedInfo() {
+ return this.extendedInfo;
+ }
+
+ /**
+ * Set additional information for this job.
+ *
+ * @param extendedInfo the extendedInfo value to set
+ * @return the DpmJob object itself.
+ */
+ public DpmJob withExtendedInfo(DpmJobExtendedInfo extendedInfo) {
+ this.extendedInfo = extendedInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobExtendedInfo.java
new file mode 100644
index 000000000000..2a9b0d4cf430
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Additional information on the DPM workload-specific job.
+ */
+public class DpmJobExtendedInfo {
+ /**
+ * List of tasks associated with this job.
+ */
+ @JsonProperty(value = "tasksList")
+ private List tasksList;
+
+ /**
+ * The job properties.
+ */
+ @JsonProperty(value = "propertyBag")
+ private Map propertyBag;
+
+ /**
+ * Non localized error message on job execution.
+ */
+ @JsonProperty(value = "dynamicErrorMessage")
+ private String dynamicErrorMessage;
+
+ /**
+ * Get list of tasks associated with this job.
+ *
+ * @return the tasksList value
+ */
+ public List tasksList() {
+ return this.tasksList;
+ }
+
+ /**
+ * Set list of tasks associated with this job.
+ *
+ * @param tasksList the tasksList value to set
+ * @return the DpmJobExtendedInfo object itself.
+ */
+ public DpmJobExtendedInfo withTasksList(List tasksList) {
+ this.tasksList = tasksList;
+ return this;
+ }
+
+ /**
+ * Get the job properties.
+ *
+ * @return the propertyBag value
+ */
+ public Map propertyBag() {
+ return this.propertyBag;
+ }
+
+ /**
+ * Set the job properties.
+ *
+ * @param propertyBag the propertyBag value to set
+ * @return the DpmJobExtendedInfo object itself.
+ */
+ public DpmJobExtendedInfo withPropertyBag(Map propertyBag) {
+ this.propertyBag = propertyBag;
+ return this;
+ }
+
+ /**
+ * Get non localized error message on job execution.
+ *
+ * @return the dynamicErrorMessage value
+ */
+ public String dynamicErrorMessage() {
+ return this.dynamicErrorMessage;
+ }
+
+ /**
+ * Set non localized error message on job execution.
+ *
+ * @param dynamicErrorMessage the dynamicErrorMessage value to set
+ * @return the DpmJobExtendedInfo object itself.
+ */
+ public DpmJobExtendedInfo withDynamicErrorMessage(String dynamicErrorMessage) {
+ this.dynamicErrorMessage = dynamicErrorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobTaskDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobTaskDetails.java
new file mode 100644
index 000000000000..d5e09f604274
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/DpmJobTaskDetails.java
@@ -0,0 +1,151 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * DPM workload-specific job task details.
+ */
+public class DpmJobTaskDetails {
+ /**
+ * The task display name.
+ */
+ @JsonProperty(value = "taskId")
+ private String taskId;
+
+ /**
+ * The start time.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * The end time.
+ */
+ @JsonProperty(value = "endTime")
+ private DateTime endTime;
+
+ /**
+ * Time elapsed for task.
+ */
+ @JsonProperty(value = "duration")
+ private Period duration;
+
+ /**
+ * The status.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Get the task display name.
+ *
+ * @return the taskId value
+ */
+ public String taskId() {
+ return this.taskId;
+ }
+
+ /**
+ * Set the task display name.
+ *
+ * @param taskId the taskId value to set
+ * @return the DpmJobTaskDetails object itself.
+ */
+ public DpmJobTaskDetails withTaskId(String taskId) {
+ this.taskId = taskId;
+ 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 DpmJobTaskDetails object itself.
+ */
+ public DpmJobTaskDetails 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 DpmJobTaskDetails object itself.
+ */
+ public DpmJobTaskDetails withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get time elapsed for task.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set time elapsed for task.
+ *
+ * @param duration the duration value to set
+ * @return the DpmJobTaskDetails object itself.
+ */
+ public DpmJobTaskDetails withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get the status.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status.
+ *
+ * @param status the status value to set
+ * @return the DpmJobTaskDetails object itself.
+ */
+ public DpmJobTaskDetails withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EncryptionDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EncryptionDetails.java
new file mode 100644
index 000000000000..588740e68a12
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EncryptionDetails.java
@@ -0,0 +1,150 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details needed if the VM was encrypted at the time of backup.
+ */
+public class EncryptionDetails {
+ /**
+ * Identifies whether this backup copy represents an encrypted VM at the
+ * time of backup.
+ */
+ @JsonProperty(value = "encryptionEnabled")
+ private Boolean encryptionEnabled;
+
+ /**
+ * Key Url.
+ */
+ @JsonProperty(value = "kekUrl")
+ private String kekUrl;
+
+ /**
+ * Secret Url.
+ */
+ @JsonProperty(value = "secretKeyUrl")
+ private String secretKeyUrl;
+
+ /**
+ * ID of Key Vault where KEK is stored.
+ */
+ @JsonProperty(value = "kekVaultId")
+ private String kekVaultId;
+
+ /**
+ * ID of Key Vault where Secret is stored.
+ */
+ @JsonProperty(value = "secretKeyVaultId")
+ private String secretKeyVaultId;
+
+ /**
+ * Get identifies whether this backup copy represents an encrypted VM at the time of backup.
+ *
+ * @return the encryptionEnabled value
+ */
+ public Boolean encryptionEnabled() {
+ return this.encryptionEnabled;
+ }
+
+ /**
+ * Set identifies whether this backup copy represents an encrypted VM at the time of backup.
+ *
+ * @param encryptionEnabled the encryptionEnabled value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withEncryptionEnabled(Boolean encryptionEnabled) {
+ this.encryptionEnabled = encryptionEnabled;
+ return this;
+ }
+
+ /**
+ * Get key Url.
+ *
+ * @return the kekUrl value
+ */
+ public String kekUrl() {
+ return this.kekUrl;
+ }
+
+ /**
+ * Set key Url.
+ *
+ * @param kekUrl the kekUrl value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withKekUrl(String kekUrl) {
+ this.kekUrl = kekUrl;
+ return this;
+ }
+
+ /**
+ * Get secret Url.
+ *
+ * @return the secretKeyUrl value
+ */
+ public String secretKeyUrl() {
+ return this.secretKeyUrl;
+ }
+
+ /**
+ * Set secret Url.
+ *
+ * @param secretKeyUrl the secretKeyUrl value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withSecretKeyUrl(String secretKeyUrl) {
+ this.secretKeyUrl = secretKeyUrl;
+ return this;
+ }
+
+ /**
+ * Get iD of Key Vault where KEK is stored.
+ *
+ * @return the kekVaultId value
+ */
+ public String kekVaultId() {
+ return this.kekVaultId;
+ }
+
+ /**
+ * Set iD of Key Vault where KEK is stored.
+ *
+ * @param kekVaultId the kekVaultId value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withKekVaultId(String kekVaultId) {
+ this.kekVaultId = kekVaultId;
+ return this;
+ }
+
+ /**
+ * Get iD of Key Vault where Secret is stored.
+ *
+ * @return the secretKeyVaultId value
+ */
+ public String secretKeyVaultId() {
+ return this.secretKeyVaultId;
+ }
+
+ /**
+ * Set iD of Key Vault where Secret is stored.
+ *
+ * @param secretKeyVaultId the secretKeyVaultId value to set
+ * @return the EncryptionDetails object itself.
+ */
+ public EncryptionDetails withSecretKeyVaultId(String secretKeyVaultId) {
+ this.secretKeyVaultId = secretKeyVaultId;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EnhancedSecurityState.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EnhancedSecurityState.java
new file mode 100644
index 000000000000..ae8726312cc2
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/EnhancedSecurityState.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EnhancedSecurityState.
+ */
+public final class EnhancedSecurityState extends ExpandableStringEnum {
+ /** Static value Invalid for EnhancedSecurityState. */
+ public static final EnhancedSecurityState INVALID = fromString("Invalid");
+
+ /** Static value Enabled for EnhancedSecurityState. */
+ public static final EnhancedSecurityState ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for EnhancedSecurityState. */
+ public static final EnhancedSecurityState DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a EnhancedSecurityState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EnhancedSecurityState
+ */
+ @JsonCreator
+ public static EnhancedSecurityState fromString(String name) {
+ return fromString(name, EnhancedSecurityState.class);
+ }
+
+ /**
+ * @return known EnhancedSecurityState values
+ */
+ public static Collection values() {
+ return values(EnhancedSecurityState.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorAdditionalInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorAdditionalInfo.java
new file mode 100644
index 000000000000..972e6d6e3e39
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorAdditionalInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource management error additional info.
+ */
+public class ErrorAdditionalInfo {
+ /**
+ * The additional info type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /**
+ * The additional info.
+ */
+ @JsonProperty(value = "info", access = JsonProperty.Access.WRITE_ONLY)
+ private Object info;
+
+ /**
+ * Get the additional info type.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the additional info.
+ *
+ * @return the info value
+ */
+ public Object info() {
+ return this.info;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorDetail.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorDetail.java
new file mode 100644
index 000000000000..88f95523b833
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorDetail.java
@@ -0,0 +1,65 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error Detail class which encapsulates Code, Message and Recommendations.
+ */
+public class ErrorDetail {
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * Error Message related to the Code.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * List of recommendation strings.
+ */
+ @JsonProperty(value = "recommendations", access = JsonProperty.Access.WRITE_ONLY)
+ private List recommendations;
+
+ /**
+ * Get error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get error Message related to the Code.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get list of recommendation strings.
+ *
+ * @return the recommendations value
+ */
+ public List recommendations() {
+ return this.recommendations;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponse.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponse.java
new file mode 100644
index 000000000000..91e20ab82877
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponse.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource management error response.
+ */
+public class ErrorResponse {
+ /**
+ * The error code.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * The error message.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * The error target.
+ */
+ @JsonProperty(value = "target", access = JsonProperty.Access.WRITE_ONLY)
+ private String target;
+
+ /**
+ * The error details.
+ */
+ @JsonProperty(value = "details", access = JsonProperty.Access.WRITE_ONLY)
+ private List details;
+
+ /**
+ * The error additional info.
+ */
+ @JsonProperty(value = "additionalInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private List additionalInfo;
+
+ /**
+ * Get the error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get the error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get the error target.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Get the error details.
+ *
+ * @return the details value
+ */
+ public List details() {
+ return this.details;
+ }
+
+ /**
+ * Get the error additional info.
+ *
+ * @return the additionalInfo value
+ */
+ public List additionalInfo() {
+ return this.additionalInfo;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponseException.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponseException.java
new file mode 100644
index 000000000000..5a69523d5cf8
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ErrorResponseException.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResultInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResultInfo.java
new file mode 100644
index 000000000000..30d8b831ceb9
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResultInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * This class is used to send blob details after exporting jobs.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = ExportJobsOperationResultInfo.class)
+@JsonTypeName("ExportJobsOperationResultInfo")
+public class ExportJobsOperationResultInfo extends OperationResultInfoBase {
+ /**
+ * URL of the blob into which the serialized string of list of jobs is
+ * exported.
+ */
+ @JsonProperty(value = "blobUrl")
+ private String blobUrl;
+
+ /**
+ * SAS key to access the blob. It expires in 15 mins.
+ */
+ @JsonProperty(value = "blobSasKey")
+ private String blobSasKey;
+
+ /**
+ * URL of the blob into which the ExcelFile is uploaded.
+ */
+ @JsonProperty(value = "excelFileBlobUrl")
+ private String excelFileBlobUrl;
+
+ /**
+ * SAS key to access the blob. It expires in 15 mins.
+ */
+ @JsonProperty(value = "excelFileBlobSasKey")
+ private String excelFileBlobSasKey;
+
+ /**
+ * Get uRL of the blob into which the serialized string of list of jobs is exported.
+ *
+ * @return the blobUrl value
+ */
+ public String blobUrl() {
+ return this.blobUrl;
+ }
+
+ /**
+ * Set uRL of the blob into which the serialized string of list of jobs is exported.
+ *
+ * @param blobUrl the blobUrl value to set
+ * @return the ExportJobsOperationResultInfo object itself.
+ */
+ public ExportJobsOperationResultInfo withBlobUrl(String blobUrl) {
+ this.blobUrl = blobUrl;
+ return this;
+ }
+
+ /**
+ * Get sAS key to access the blob. It expires in 15 mins.
+ *
+ * @return the blobSasKey value
+ */
+ public String blobSasKey() {
+ return this.blobSasKey;
+ }
+
+ /**
+ * Set sAS key to access the blob. It expires in 15 mins.
+ *
+ * @param blobSasKey the blobSasKey value to set
+ * @return the ExportJobsOperationResultInfo object itself.
+ */
+ public ExportJobsOperationResultInfo withBlobSasKey(String blobSasKey) {
+ this.blobSasKey = blobSasKey;
+ return this;
+ }
+
+ /**
+ * Get uRL of the blob into which the ExcelFile is uploaded.
+ *
+ * @return the excelFileBlobUrl value
+ */
+ public String excelFileBlobUrl() {
+ return this.excelFileBlobUrl;
+ }
+
+ /**
+ * Set uRL of the blob into which the ExcelFile is uploaded.
+ *
+ * @param excelFileBlobUrl the excelFileBlobUrl value to set
+ * @return the ExportJobsOperationResultInfo object itself.
+ */
+ public ExportJobsOperationResultInfo withExcelFileBlobUrl(String excelFileBlobUrl) {
+ this.excelFileBlobUrl = excelFileBlobUrl;
+ return this;
+ }
+
+ /**
+ * Get sAS key to access the blob. It expires in 15 mins.
+ *
+ * @return the excelFileBlobSasKey value
+ */
+ public String excelFileBlobSasKey() {
+ return this.excelFileBlobSasKey;
+ }
+
+ /**
+ * Set sAS key to access the blob. It expires in 15 mins.
+ *
+ * @param excelFileBlobSasKey the excelFileBlobSasKey value to set
+ * @return the ExportJobsOperationResultInfo object itself.
+ */
+ public ExportJobsOperationResultInfo withExcelFileBlobSasKey(String excelFileBlobSasKey) {
+ this.excelFileBlobSasKey = excelFileBlobSasKey;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResults.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResults.java
new file mode 100644
index 000000000000..81fc8f4bbca5
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExportJobsOperationResults.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ExportJobsOperationResultsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ExportJobsOperationResults.
+ */
+public interface ExportJobsOperationResults extends HasInner {
+ /**
+ * Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also
+ contains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized format.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param operationId OperationID which represents the export job.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName, String operationId);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExtendedProperties.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExtendedProperties.java
new file mode 100644
index 000000000000..35fa3c183f67
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ExtendedProperties.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Extended Properties for Azure IaasVM Backup.
+ */
+public class ExtendedProperties {
+ /**
+ * Extended Properties for Disk Exclusion.
+ */
+ @JsonProperty(value = "diskExclusionProperties")
+ private DiskExclusionProperties diskExclusionProperties;
+
+ /**
+ * Get extended Properties for Disk Exclusion.
+ *
+ * @return the diskExclusionProperties value
+ */
+ public DiskExclusionProperties diskExclusionProperties() {
+ return this.diskExclusionProperties;
+ }
+
+ /**
+ * Set extended Properties for Disk Exclusion.
+ *
+ * @param diskExclusionProperties the diskExclusionProperties value to set
+ * @return the ExtendedProperties object itself.
+ */
+ public ExtendedProperties withDiskExclusionProperties(DiskExclusionProperties diskExclusionProperties) {
+ this.diskExclusionProperties = diskExclusionProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FabricName.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FabricName.java
new file mode 100644
index 000000000000..5f71a09ffa1d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FabricName.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for FabricName.
+ */
+public final class FabricName extends ExpandableStringEnum {
+ /** Static value Invalid for FabricName. */
+ public static final FabricName INVALID = fromString("Invalid");
+
+ /** Static value Azure for FabricName. */
+ public static final FabricName AZURE = fromString("Azure");
+
+ /**
+ * Creates or finds a FabricName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding FabricName
+ */
+ @JsonCreator
+ public static FabricName fromString(String name) {
+ return fromString(name, FabricName.class);
+ }
+
+ /**
+ * @return known FabricName values
+ */
+ public static Collection values() {
+ return values(FabricName.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupportRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupportRequest.java
new file mode 100644
index 000000000000..31d2d6a5405d
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupportRequest.java
@@ -0,0 +1,27 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Base class for feature request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "featureType", defaultImpl = FeatureSupportRequest.class)
+@JsonTypeName("FeatureSupportRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureBackupGoals", value = AzureBackupGoalFeatureSupportRequest.class),
+ @JsonSubTypes.Type(name = "AzureVMResourceBackup", value = AzureVMResourceFeatureSupportRequest.class)
+})
+public class FeatureSupportRequest {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupports.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupports.java
new file mode 100644
index 000000000000..306721a3abda
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/FeatureSupports.java
@@ -0,0 +1,31 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.FeatureSupportsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing FeatureSupports.
+ */
+public interface FeatureSupports extends HasInner {
+ /**
+ * It will validate if given feature with resource properties is supported in service.
+ *
+ * @param azureRegion Azure region to hit Api
+ * @param parameters Feature support request object
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable validateAsync(String azureRegion, FeatureSupportRequest parameters);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainer.java
new file mode 100644
index 000000000000..ed20b9898e01
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainer.java
@@ -0,0 +1,76 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * Base class for generic container of backup items.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = GenericContainer.class)
+@JsonTypeName("GenericContainer")
+public class GenericContainer extends ProtectionContainerInner {
+ /**
+ * Name of the container's fabric.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * Extended information (not returned in List container API calls).
+ */
+ @JsonProperty(value = "extendedInformation")
+ private GenericContainerExtendedInfo extendedInformation;
+
+ /**
+ * Get name of the container's fabric.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set name of the container's fabric.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the GenericContainer object itself.
+ */
+ public GenericContainer withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+ /**
+ * Get extended information (not returned in List container API calls).
+ *
+ * @return the extendedInformation value
+ */
+ public GenericContainerExtendedInfo extendedInformation() {
+ return this.extendedInformation;
+ }
+
+ /**
+ * Set extended information (not returned in List container API calls).
+ *
+ * @param extendedInformation the extendedInformation value to set
+ * @return the GenericContainer object itself.
+ */
+ public GenericContainer withExtendedInformation(GenericContainerExtendedInfo extendedInformation) {
+ this.extendedInformation = extendedInformation;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainerExtendedInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainerExtendedInfo.java
new file mode 100644
index 000000000000..1de919c9e87b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericContainerExtendedInfo.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Container extended information.
+ */
+public class GenericContainerExtendedInfo {
+ /**
+ * Public key of container cert.
+ */
+ @JsonProperty(value = "rawCertData")
+ private String rawCertData;
+
+ /**
+ * Container identity information.
+ */
+ @JsonProperty(value = "containerIdentityInfo")
+ private ContainerIdentityInfo containerIdentityInfo;
+
+ /**
+ * Azure Backup Service Endpoints for the container.
+ */
+ @JsonProperty(value = "serviceEndpoints")
+ private Map serviceEndpoints;
+
+ /**
+ * Get public key of container cert.
+ *
+ * @return the rawCertData value
+ */
+ public String rawCertData() {
+ return this.rawCertData;
+ }
+
+ /**
+ * Set public key of container cert.
+ *
+ * @param rawCertData the rawCertData value to set
+ * @return the GenericContainerExtendedInfo object itself.
+ */
+ public GenericContainerExtendedInfo withRawCertData(String rawCertData) {
+ this.rawCertData = rawCertData;
+ return this;
+ }
+
+ /**
+ * Get container identity information.
+ *
+ * @return the containerIdentityInfo value
+ */
+ public ContainerIdentityInfo containerIdentityInfo() {
+ return this.containerIdentityInfo;
+ }
+
+ /**
+ * Set container identity information.
+ *
+ * @param containerIdentityInfo the containerIdentityInfo value to set
+ * @return the GenericContainerExtendedInfo object itself.
+ */
+ public GenericContainerExtendedInfo withContainerIdentityInfo(ContainerIdentityInfo containerIdentityInfo) {
+ this.containerIdentityInfo = containerIdentityInfo;
+ return this;
+ }
+
+ /**
+ * Get azure Backup Service Endpoints for the container.
+ *
+ * @return the serviceEndpoints value
+ */
+ public Map serviceEndpoints() {
+ return this.serviceEndpoints;
+ }
+
+ /**
+ * Set azure Backup Service Endpoints for the container.
+ *
+ * @param serviceEndpoints the serviceEndpoints value to set
+ * @return the GenericContainerExtendedInfo object itself.
+ */
+ public GenericContainerExtendedInfo withServiceEndpoints(Map serviceEndpoints) {
+ this.serviceEndpoints = serviceEndpoints;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectedItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectedItem.java
new file mode 100644
index 000000000000..d2587f17455b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectedItem.java
@@ -0,0 +1,185 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectedItemInner;
+
+/**
+ * Base class for backup items.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectedItemType", defaultImpl = GenericProtectedItem.class)
+@JsonTypeName("GenericProtectedItem")
+public class GenericProtectedItem extends ProtectedItemInner {
+ /**
+ * Friendly name of the container.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Indicates consistency of policy object and policy applied to this backup
+ * item.
+ */
+ @JsonProperty(value = "policyState")
+ private String policyState;
+
+ /**
+ * Backup state of this backup item. Possible values include: 'Invalid',
+ * 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped',
+ * 'ProtectionPaused'.
+ */
+ @JsonProperty(value = "protectionState")
+ private ProtectionState protectionState;
+
+ /**
+ * Data Plane Service ID of the protected item.
+ */
+ @JsonProperty(value = "protectedItemId")
+ private Long protectedItemId;
+
+ /**
+ * Loosely coupled (type, value) associations (example - parent of a
+ * protected item).
+ */
+ @JsonProperty(value = "sourceAssociations")
+ private Map sourceAssociations;
+
+ /**
+ * Name of this backup item's fabric.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * Get friendly name of the container.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the container.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @return the policyState value
+ */
+ public String policyState() {
+ return this.policyState;
+ }
+
+ /**
+ * Set indicates consistency of policy object and policy applied to this backup item.
+ *
+ * @param policyState the policyState value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withPolicyState(String policyState) {
+ this.policyState = policyState;
+ return this;
+ }
+
+ /**
+ * Get backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @return the protectionState value
+ */
+ public ProtectionState protectionState() {
+ return this.protectionState;
+ }
+
+ /**
+ * Set backup state of this backup item. Possible values include: 'Invalid', 'IRPending', 'Protected', 'ProtectionError', 'ProtectionStopped', 'ProtectionPaused'.
+ *
+ * @param protectionState the protectionState value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withProtectionState(ProtectionState protectionState) {
+ this.protectionState = protectionState;
+ return this;
+ }
+
+ /**
+ * Get data Plane Service ID of the protected item.
+ *
+ * @return the protectedItemId value
+ */
+ public Long protectedItemId() {
+ return this.protectedItemId;
+ }
+
+ /**
+ * Set data Plane Service ID of the protected item.
+ *
+ * @param protectedItemId the protectedItemId value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withProtectedItemId(Long protectedItemId) {
+ this.protectedItemId = protectedItemId;
+ return this;
+ }
+
+ /**
+ * Get loosely coupled (type, value) associations (example - parent of a protected item).
+ *
+ * @return the sourceAssociations value
+ */
+ public Map sourceAssociations() {
+ return this.sourceAssociations;
+ }
+
+ /**
+ * Set loosely coupled (type, value) associations (example - parent of a protected item).
+ *
+ * @param sourceAssociations the sourceAssociations value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withSourceAssociations(Map sourceAssociations) {
+ this.sourceAssociations = sourceAssociations;
+ return this;
+ }
+
+ /**
+ * Get name of this backup item's fabric.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set name of this backup item's fabric.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the GenericProtectedItem object itself.
+ */
+ public GenericProtectedItem withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectionPolicy.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectionPolicy.java
new file mode 100644
index 000000000000..ec6e09f39c3f
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericProtectionPolicy.java
@@ -0,0 +1,104 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionPolicyInner;
+
+/**
+ * Azure VM (Mercury) workload-specific backup policy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "backupManagementType", defaultImpl = GenericProtectionPolicy.class)
+@JsonTypeName("GenericProtectionPolicy")
+public class GenericProtectionPolicy extends ProtectionPolicyInner {
+ /**
+ * List of sub-protection policies which includes schedule and retention.
+ */
+ @JsonProperty(value = "subProtectionPolicy")
+ private List subProtectionPolicy;
+
+ /**
+ * TimeZone optional input as string. For example: TimeZone = "Pacific
+ * Standard Time".
+ */
+ @JsonProperty(value = "timeZone")
+ private String timeZone;
+
+ /**
+ * Name of this policy's fabric.
+ */
+ @JsonProperty(value = "fabricName")
+ private String fabricName;
+
+ /**
+ * Get list of sub-protection policies which includes schedule and retention.
+ *
+ * @return the subProtectionPolicy value
+ */
+ public List subProtectionPolicy() {
+ return this.subProtectionPolicy;
+ }
+
+ /**
+ * Set list of sub-protection policies which includes schedule and retention.
+ *
+ * @param subProtectionPolicy the subProtectionPolicy value to set
+ * @return the GenericProtectionPolicy object itself.
+ */
+ public GenericProtectionPolicy withSubProtectionPolicy(List subProtectionPolicy) {
+ this.subProtectionPolicy = subProtectionPolicy;
+ return this;
+ }
+
+ /**
+ * Get timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @return the timeZone value
+ */
+ public String timeZone() {
+ return this.timeZone;
+ }
+
+ /**
+ * Set timeZone optional input as string. For example: TimeZone = "Pacific Standard Time".
+ *
+ * @param timeZone the timeZone value to set
+ * @return the GenericProtectionPolicy object itself.
+ */
+ public GenericProtectionPolicy withTimeZone(String timeZone) {
+ this.timeZone = timeZone;
+ return this;
+ }
+
+ /**
+ * Get name of this policy's fabric.
+ *
+ * @return the fabricName value
+ */
+ public String fabricName() {
+ return this.fabricName;
+ }
+
+ /**
+ * Set name of this policy's fabric.
+ *
+ * @param fabricName the fabricName value to set
+ * @return the GenericProtectionPolicy object itself.
+ */
+ public GenericProtectionPolicy withFabricName(String fabricName) {
+ this.fabricName = fabricName;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericRecoveryPoint.java
new file mode 100644
index 000000000000..13df3c4c729a
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GenericRecoveryPoint.java
@@ -0,0 +1,129 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryPointInner;
+
+/**
+ * Generic backup copy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = GenericRecoveryPoint.class)
+@JsonTypeName("GenericRecoveryPoint")
+public class GenericRecoveryPoint extends RecoveryPointInner {
+ /**
+ * Friendly name of the backup copy.
+ */
+ @JsonProperty(value = "friendlyName")
+ private String friendlyName;
+
+ /**
+ * Type of the backup copy.
+ */
+ @JsonProperty(value = "recoveryPointType")
+ private String recoveryPointType;
+
+ /**
+ * Time at which this backup copy was created.
+ */
+ @JsonProperty(value = "recoveryPointTime")
+ private DateTime recoveryPointTime;
+
+ /**
+ * Additional information associated with this backup copy.
+ */
+ @JsonProperty(value = "recoveryPointAdditionalInfo")
+ private String recoveryPointAdditionalInfo;
+
+ /**
+ * Get friendly name of the backup copy.
+ *
+ * @return the friendlyName value
+ */
+ public String friendlyName() {
+ return this.friendlyName;
+ }
+
+ /**
+ * Set friendly name of the backup copy.
+ *
+ * @param friendlyName the friendlyName value to set
+ * @return the GenericRecoveryPoint object itself.
+ */
+ public GenericRecoveryPoint withFriendlyName(String friendlyName) {
+ this.friendlyName = friendlyName;
+ return this;
+ }
+
+ /**
+ * Get type of the backup copy.
+ *
+ * @return the recoveryPointType value
+ */
+ public String recoveryPointType() {
+ return this.recoveryPointType;
+ }
+
+ /**
+ * Set type of the backup copy.
+ *
+ * @param recoveryPointType the recoveryPointType value to set
+ * @return the GenericRecoveryPoint object itself.
+ */
+ public GenericRecoveryPoint withRecoveryPointType(String recoveryPointType) {
+ this.recoveryPointType = recoveryPointType;
+ return this;
+ }
+
+ /**
+ * Get time at which this backup copy was created.
+ *
+ * @return the recoveryPointTime value
+ */
+ public DateTime recoveryPointTime() {
+ return this.recoveryPointTime;
+ }
+
+ /**
+ * Set time at which this backup copy was created.
+ *
+ * @param recoveryPointTime the recoveryPointTime value to set
+ * @return the GenericRecoveryPoint object itself.
+ */
+ public GenericRecoveryPoint withRecoveryPointTime(DateTime recoveryPointTime) {
+ this.recoveryPointTime = recoveryPointTime;
+ return this;
+ }
+
+ /**
+ * Get additional information associated with this backup copy.
+ *
+ * @return the recoveryPointAdditionalInfo value
+ */
+ public String recoveryPointAdditionalInfo() {
+ return this.recoveryPointAdditionalInfo;
+ }
+
+ /**
+ * Set additional information associated with this backup copy.
+ *
+ * @param recoveryPointAdditionalInfo the recoveryPointAdditionalInfo value to set
+ * @return the GenericRecoveryPoint object itself.
+ */
+ public GenericRecoveryPoint withRecoveryPointAdditionalInfo(String recoveryPointAdditionalInfo) {
+ this.recoveryPointAdditionalInfo = recoveryPointAdditionalInfo;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GetProtectedItemQueryObject.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GetProtectedItemQueryObject.java
new file mode 100644
index 000000000000..e362c60a3f9e
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/GetProtectedItemQueryObject.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filters to list backup items.
+ */
+public class GetProtectedItemQueryObject {
+ /**
+ * Specifies if the additional information should be provided for this
+ * item.
+ */
+ @JsonProperty(value = "expand")
+ private String expand;
+
+ /**
+ * Get specifies if the additional information should be provided for this item.
+ *
+ * @return the expand value
+ */
+ public String expand() {
+ return this.expand;
+ }
+
+ /**
+ * Set specifies if the additional information should be provided for this item.
+ *
+ * @param expand the expand value to set
+ * @return the GetProtectedItemQueryObject object itself.
+ */
+ public GetProtectedItemQueryObject withExpand(String expand) {
+ this.expand = expand;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthState.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthState.java
new file mode 100644
index 000000000000..45d4b714e825
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthState.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for HealthState.
+ */
+public final class HealthState extends ExpandableStringEnum {
+ /** Static value Passed for HealthState. */
+ public static final HealthState PASSED = fromString("Passed");
+
+ /** Static value ActionRequired for HealthState. */
+ public static final HealthState ACTION_REQUIRED = fromString("ActionRequired");
+
+ /** Static value ActionSuggested for HealthState. */
+ public static final HealthState ACTION_SUGGESTED = fromString("ActionSuggested");
+
+ /** Static value Invalid for HealthState. */
+ public static final HealthState INVALID = fromString("Invalid");
+
+ /**
+ * Creates or finds a HealthState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding HealthState
+ */
+ @JsonCreator
+ public static HealthState fromString(String name) {
+ return fromString(name, HealthState.class);
+ }
+
+ /**
+ * @return known HealthState values
+ */
+ public static Collection values() {
+ return values(HealthState.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthStatus.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthStatus.java
new file mode 100644
index 000000000000..7becc123d666
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HealthStatus.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for HealthStatus.
+ */
+public final class HealthStatus extends ExpandableStringEnum {
+ /** Static value Passed for HealthStatus. */
+ public static final HealthStatus PASSED = fromString("Passed");
+
+ /** Static value ActionRequired for HealthStatus. */
+ public static final HealthStatus ACTION_REQUIRED = fromString("ActionRequired");
+
+ /** Static value ActionSuggested for HealthStatus. */
+ public static final HealthStatus ACTION_SUGGESTED = fromString("ActionSuggested");
+
+ /** Static value Invalid for HealthStatus. */
+ public static final HealthStatus INVALID = fromString("Invalid");
+
+ /**
+ * Creates or finds a HealthStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding HealthStatus
+ */
+ @JsonCreator
+ public static HealthStatus fromString(String name) {
+ return fromString(name, HealthStatus.class);
+ }
+
+ /**
+ * @return known HealthStatus values
+ */
+ public static Collection values() {
+ return values(HealthStatus.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HttpStatusCode.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HttpStatusCode.java
new file mode 100644
index 000000000000..2dbc00675d29
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/HttpStatusCode.java
@@ -0,0 +1,190 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for HttpStatusCode.
+ */
+public enum HttpStatusCode {
+ /** Enum value Continue. */
+ CONTINUE("Continue"),
+
+ /** Enum value SwitchingProtocols. */
+ SWITCHING_PROTOCOLS("SwitchingProtocols"),
+
+ /** Enum value OK. */
+ OK("OK"),
+
+ /** Enum value Created. */
+ CREATED("Created"),
+
+ /** Enum value Accepted. */
+ ACCEPTED("Accepted"),
+
+ /** Enum value NonAuthoritativeInformation. */
+ NON_AUTHORITATIVE_INFORMATION("NonAuthoritativeInformation"),
+
+ /** Enum value NoContent. */
+ NO_CONTENT("NoContent"),
+
+ /** Enum value ResetContent. */
+ RESET_CONTENT("ResetContent"),
+
+ /** Enum value PartialContent. */
+ PARTIAL_CONTENT("PartialContent"),
+
+ /** Enum value MultipleChoices. */
+ MULTIPLE_CHOICES("MultipleChoices"),
+
+ /** Enum value Ambiguous. */
+ AMBIGUOUS("Ambiguous"),
+
+ /** Enum value MovedPermanently. */
+ MOVED_PERMANENTLY("MovedPermanently"),
+
+ /** Enum value Moved. */
+ MOVED("Moved"),
+
+ /** Enum value Found. */
+ FOUND("Found"),
+
+ /** Enum value Redirect. */
+ REDIRECT("Redirect"),
+
+ /** Enum value SeeOther. */
+ SEE_OTHER("SeeOther"),
+
+ /** Enum value RedirectMethod. */
+ REDIRECT_METHOD("RedirectMethod"),
+
+ /** Enum value NotModified. */
+ NOT_MODIFIED("NotModified"),
+
+ /** Enum value UseProxy. */
+ USE_PROXY("UseProxy"),
+
+ /** Enum value Unused. */
+ UNUSED("Unused"),
+
+ /** Enum value TemporaryRedirect. */
+ TEMPORARY_REDIRECT("TemporaryRedirect"),
+
+ /** Enum value RedirectKeepVerb. */
+ REDIRECT_KEEP_VERB("RedirectKeepVerb"),
+
+ /** Enum value BadRequest. */
+ BAD_REQUEST("BadRequest"),
+
+ /** Enum value Unauthorized. */
+ UNAUTHORIZED("Unauthorized"),
+
+ /** Enum value PaymentRequired. */
+ PAYMENT_REQUIRED("PaymentRequired"),
+
+ /** Enum value Forbidden. */
+ FORBIDDEN("Forbidden"),
+
+ /** Enum value NotFound. */
+ NOT_FOUND("NotFound"),
+
+ /** Enum value MethodNotAllowed. */
+ METHOD_NOT_ALLOWED("MethodNotAllowed"),
+
+ /** Enum value NotAcceptable. */
+ NOT_ACCEPTABLE("NotAcceptable"),
+
+ /** Enum value ProxyAuthenticationRequired. */
+ PROXY_AUTHENTICATION_REQUIRED("ProxyAuthenticationRequired"),
+
+ /** Enum value RequestTimeout. */
+ REQUEST_TIMEOUT("RequestTimeout"),
+
+ /** Enum value Conflict. */
+ CONFLICT("Conflict"),
+
+ /** Enum value Gone. */
+ GONE("Gone"),
+
+ /** Enum value LengthRequired. */
+ LENGTH_REQUIRED("LengthRequired"),
+
+ /** Enum value PreconditionFailed. */
+ PRECONDITION_FAILED("PreconditionFailed"),
+
+ /** Enum value RequestEntityTooLarge. */
+ REQUEST_ENTITY_TOO_LARGE("RequestEntityTooLarge"),
+
+ /** Enum value RequestUriTooLong. */
+ REQUEST_URI_TOO_LONG("RequestUriTooLong"),
+
+ /** Enum value UnsupportedMediaType. */
+ UNSUPPORTED_MEDIA_TYPE("UnsupportedMediaType"),
+
+ /** Enum value RequestedRangeNotSatisfiable. */
+ REQUESTED_RANGE_NOT_SATISFIABLE("RequestedRangeNotSatisfiable"),
+
+ /** Enum value ExpectationFailed. */
+ EXPECTATION_FAILED("ExpectationFailed"),
+
+ /** Enum value UpgradeRequired. */
+ UPGRADE_REQUIRED("UpgradeRequired"),
+
+ /** Enum value InternalServerError. */
+ INTERNAL_SERVER_ERROR("InternalServerError"),
+
+ /** Enum value NotImplemented. */
+ NOT_IMPLEMENTED("NotImplemented"),
+
+ /** Enum value BadGateway. */
+ BAD_GATEWAY("BadGateway"),
+
+ /** Enum value ServiceUnavailable. */
+ SERVICE_UNAVAILABLE("ServiceUnavailable"),
+
+ /** Enum value GatewayTimeout. */
+ GATEWAY_TIMEOUT("GatewayTimeout"),
+
+ /** Enum value HttpVersionNotSupported. */
+ HTTP_VERSION_NOT_SUPPORTED("HttpVersionNotSupported");
+
+ /** The actual serialized value for a HttpStatusCode instance. */
+ private String value;
+
+ HttpStatusCode(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a HttpStatusCode instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed HttpStatusCode object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static HttpStatusCode fromString(String value) {
+ HttpStatusCode[] items = HttpStatusCode.values();
+ for (HttpStatusCode item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequest.java
new file mode 100644
index 000000000000..2e1af1686c11
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequest.java
@@ -0,0 +1,27 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Parameters to Provision ILR API.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = ILRRequest.class)
+@JsonTypeName("ILRRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "AzureFileShareProvisionILRRequest", value = AzureFileShareProvisionILRRequest.class),
+ @JsonSubTypes.Type(name = "IaasVMILRRegistrationRequest", value = IaasVMILRRegistrationRequest.class)
+})
+public class ILRRequest {
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequestResource.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequestResource.java
new file mode 100644
index 000000000000..63446234b0a2
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ILRRequestResource.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * Parameters to Provision ILR API.
+ */
+@SkipParentValidation
+public class ILRRequestResource extends Resource {
+ /**
+ * ILRRequestResource properties.
+ */
+ @JsonProperty(value = "properties")
+ private ILRRequest properties;
+
+ /**
+ * Optional ETag.
+ */
+ @JsonProperty(value = "eTag")
+ private String eTag;
+
+ /**
+ * Get iLRRequestResource properties.
+ *
+ * @return the properties value
+ */
+ public ILRRequest properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set iLRRequestResource properties.
+ *
+ * @param properties the properties value to set
+ * @return the ILRRequestResource object itself.
+ */
+ public ILRRequestResource withProperties(ILRRequest properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get optional ETag.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set optional ETag.
+ *
+ * @param eTag the eTag value to set
+ * @return the ILRRequestResource object itself.
+ */
+ public ILRRequestResource withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMContainer.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMContainer.java
new file mode 100644
index 000000000000..f4a76bd4b033
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMContainer.java
@@ -0,0 +1,109 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ProtectionContainerInner;
+
+/**
+ * IaaS VM workload-specific container.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "containerType", defaultImpl = IaaSVMContainer.class)
+@JsonTypeName("IaaSVMContainer")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Microsoft.ClassicCompute/virtualMachines", value = AzureIaaSClassicComputeVMContainer.class),
+ @JsonSubTypes.Type(name = "Microsoft.Compute/virtualMachines", value = AzureIaaSComputeVMContainer.class)
+})
+public class IaaSVMContainer extends ProtectionContainerInner {
+ /**
+ * Fully qualified ARM url of the virtual machine represented by this Azure
+ * IaaS VM container.
+ */
+ @JsonProperty(value = "virtualMachineId")
+ private String virtualMachineId;
+
+ /**
+ * Specifies whether the container represents a Classic or an Azure
+ * Resource Manager VM.
+ */
+ @JsonProperty(value = "virtualMachineVersion")
+ private String virtualMachineVersion;
+
+ /**
+ * Resource group name of Recovery Services Vault.
+ */
+ @JsonProperty(value = "resourceGroup")
+ private String resourceGroup;
+
+ /**
+ * Get fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.
+ *
+ * @return the virtualMachineId value
+ */
+ public String virtualMachineId() {
+ return this.virtualMachineId;
+ }
+
+ /**
+ * Set fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.
+ *
+ * @param virtualMachineId the virtualMachineId value to set
+ * @return the IaaSVMContainer object itself.
+ */
+ public IaaSVMContainer withVirtualMachineId(String virtualMachineId) {
+ this.virtualMachineId = virtualMachineId;
+ return this;
+ }
+
+ /**
+ * Get specifies whether the container represents a Classic or an Azure Resource Manager VM.
+ *
+ * @return the virtualMachineVersion value
+ */
+ public String virtualMachineVersion() {
+ return this.virtualMachineVersion;
+ }
+
+ /**
+ * Set specifies whether the container represents a Classic or an Azure Resource Manager VM.
+ *
+ * @param virtualMachineVersion the virtualMachineVersion value to set
+ * @return the IaaSVMContainer object itself.
+ */
+ public IaaSVMContainer withVirtualMachineVersion(String virtualMachineVersion) {
+ this.virtualMachineVersion = virtualMachineVersion;
+ return this;
+ }
+
+ /**
+ * Get resource group name of Recovery Services Vault.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Set resource group name of Recovery Services Vault.
+ *
+ * @param resourceGroup the resourceGroup value to set
+ * @return the IaaSVMContainer object itself.
+ */
+ public IaaSVMContainer withResourceGroup(String resourceGroup) {
+ this.resourceGroup = resourceGroup;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMProtectableItem.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMProtectableItem.java
new file mode 100644
index 000000000000..e707c3b7f8ea
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaaSVMProtectableItem.java
@@ -0,0 +1,54 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * IaaS VM workload-specific backup item.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "protectableItemType", defaultImpl = IaaSVMProtectableItem.class)
+@JsonTypeName("IaaSVMProtectableItem")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Microsoft.ClassicCompute/virtualMachines", value = AzureIaaSClassicComputeVMProtectableItem.class),
+ @JsonSubTypes.Type(name = "Microsoft.Compute/virtualMachines", value = AzureIaaSComputeVMProtectableItem.class)
+})
+public class IaaSVMProtectableItem extends WorkloadProtectableItem {
+ /**
+ * Fully qualified ARM ID of the virtual machine.
+ */
+ @JsonProperty(value = "virtualMachineId")
+ private String virtualMachineId;
+
+ /**
+ * Get fully qualified ARM ID of the virtual machine.
+ *
+ * @return the virtualMachineId value
+ */
+ public String virtualMachineId() {
+ return this.virtualMachineId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the virtual machine.
+ *
+ * @param virtualMachineId the virtualMachineId value to set
+ * @return the IaaSVMProtectableItem object itself.
+ */
+ public IaaSVMProtectableItem withVirtualMachineId(String virtualMachineId) {
+ this.virtualMachineId = virtualMachineId;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMBackupRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMBackupRequest.java
new file mode 100644
index 000000000000..af4b071cb2bb
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMBackupRequest.java
@@ -0,0 +1,50 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific backup request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = IaasVMBackupRequest.class)
+@JsonTypeName("IaasVMBackupRequest")
+public class IaasVMBackupRequest extends BackupRequest {
+ /**
+ * Backup copy will expire after the time specified (UTC).
+ */
+ @JsonProperty(value = "recoveryPointExpiryTimeInUTC")
+ private DateTime recoveryPointExpiryTimeInUTC;
+
+ /**
+ * Get backup copy will expire after the time specified (UTC).
+ *
+ * @return the recoveryPointExpiryTimeInUTC value
+ */
+ public DateTime recoveryPointExpiryTimeInUTC() {
+ return this.recoveryPointExpiryTimeInUTC;
+ }
+
+ /**
+ * Set backup copy will expire after the time specified (UTC).
+ *
+ * @param recoveryPointExpiryTimeInUTC the recoveryPointExpiryTimeInUTC value to set
+ * @return the IaasVMBackupRequest object itself.
+ */
+ public IaasVMBackupRequest withRecoveryPointExpiryTimeInUTC(DateTime recoveryPointExpiryTimeInUTC) {
+ this.recoveryPointExpiryTimeInUTC = recoveryPointExpiryTimeInUTC;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMILRRegistrationRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMILRRegistrationRequest.java
new file mode 100644
index 000000000000..cb4f63c11f0b
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMILRRegistrationRequest.java
@@ -0,0 +1,129 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * Restore files/folders from a backup copy of IaaS VM.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = IaasVMILRRegistrationRequest.class)
+@JsonTypeName("IaasVMILRRegistrationRequest")
+public class IaasVMILRRegistrationRequest extends ILRRequest {
+ /**
+ * ID of the IaaS VM backup copy from where the files/folders have to be
+ * restored.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Fully qualified ARM ID of the virtual machine whose the files / folders
+ * have to be restored.
+ */
+ @JsonProperty(value = "virtualMachineId")
+ private String virtualMachineId;
+
+ /**
+ * iSCSI initiator name.
+ */
+ @JsonProperty(value = "initiatorName")
+ private String initiatorName;
+
+ /**
+ * Whether to renew existing registration with the iSCSI server.
+ */
+ @JsonProperty(value = "renewExistingRegistration")
+ private Boolean renewExistingRegistration;
+
+ /**
+ * Get iD of the IaaS VM backup copy from where the files/folders have to be restored.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set iD of the IaaS VM backup copy from where the files/folders have to be restored.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the IaasVMILRRegistrationRequest object itself.
+ */
+ public IaasVMILRRegistrationRequest withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the virtual machine whose the files / folders have to be restored.
+ *
+ * @return the virtualMachineId value
+ */
+ public String virtualMachineId() {
+ return this.virtualMachineId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the virtual machine whose the files / folders have to be restored.
+ *
+ * @param virtualMachineId the virtualMachineId value to set
+ * @return the IaasVMILRRegistrationRequest object itself.
+ */
+ public IaasVMILRRegistrationRequest withVirtualMachineId(String virtualMachineId) {
+ this.virtualMachineId = virtualMachineId;
+ return this;
+ }
+
+ /**
+ * Get iSCSI initiator name.
+ *
+ * @return the initiatorName value
+ */
+ public String initiatorName() {
+ return this.initiatorName;
+ }
+
+ /**
+ * Set iSCSI initiator name.
+ *
+ * @param initiatorName the initiatorName value to set
+ * @return the IaasVMILRRegistrationRequest object itself.
+ */
+ public IaasVMILRRegistrationRequest withInitiatorName(String initiatorName) {
+ this.initiatorName = initiatorName;
+ return this;
+ }
+
+ /**
+ * Get whether to renew existing registration with the iSCSI server.
+ *
+ * @return the renewExistingRegistration value
+ */
+ public Boolean renewExistingRegistration() {
+ return this.renewExistingRegistration;
+ }
+
+ /**
+ * Set whether to renew existing registration with the iSCSI server.
+ *
+ * @param renewExistingRegistration the renewExistingRegistration value to set
+ * @return the IaasVMILRRegistrationRequest object itself.
+ */
+ public IaasVMILRRegistrationRequest withRenewExistingRegistration(Boolean renewExistingRegistration) {
+ this.renewExistingRegistration = renewExistingRegistration;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRecoveryPoint.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRecoveryPoint.java
new file mode 100644
index 000000000000..1e17eb432905
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRecoveryPoint.java
@@ -0,0 +1,310 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+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;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.RecoveryPointInner;
+
+/**
+ * IaaS VM workload specific backup copy.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = IaasVMRecoveryPoint.class)
+@JsonTypeName("IaasVMRecoveryPoint")
+public class IaasVMRecoveryPoint extends RecoveryPointInner {
+ /**
+ * Type of the backup copy.
+ */
+ @JsonProperty(value = "recoveryPointType", access = JsonProperty.Access.WRITE_ONLY)
+ private String recoveryPointType;
+
+ /**
+ * Time at which this backup copy was created.
+ */
+ @JsonProperty(value = "recoveryPointTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime recoveryPointTime;
+
+ /**
+ * Additional information associated with this backup copy.
+ */
+ @JsonProperty(value = "recoveryPointAdditionalInfo", access = JsonProperty.Access.WRITE_ONLY)
+ private String recoveryPointAdditionalInfo;
+
+ /**
+ * Storage type of the VM whose backup copy is created.
+ */
+ @JsonProperty(value = "sourceVMStorageType", access = JsonProperty.Access.WRITE_ONLY)
+ private String sourceVMStorageType;
+
+ /**
+ * Identifies whether the VM was encrypted when the backup copy is created.
+ */
+ @JsonProperty(value = "isSourceVMEncrypted", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isSourceVMEncrypted;
+
+ /**
+ * Required details for recovering an encrypted VM. Applicable only when
+ * IsSourceVMEncrypted is true.
+ */
+ @JsonProperty(value = "keyAndSecret")
+ private KeyAndSecretDetails keyAndSecret;
+
+ /**
+ * Is the session to recover items from this backup copy still active.
+ */
+ @JsonProperty(value = "isInstantIlrSessionActive")
+ private Boolean isInstantIlrSessionActive;
+
+ /**
+ * Recovery point tier information.
+ */
+ @JsonProperty(value = "recoveryPointTierDetails")
+ private List recoveryPointTierDetails;
+
+ /**
+ * Whether VM is with Managed Disks.
+ */
+ @JsonProperty(value = "isManagedVirtualMachine")
+ private Boolean isManagedVirtualMachine;
+
+ /**
+ * Virtual Machine Size.
+ */
+ @JsonProperty(value = "virtualMachineSize")
+ private String virtualMachineSize;
+
+ /**
+ * Original Storage Account Option.
+ */
+ @JsonProperty(value = "originalStorageAccountOption")
+ private Boolean originalStorageAccountOption;
+
+ /**
+ * OS type.
+ */
+ @JsonProperty(value = "osType")
+ private String osType;
+
+ /**
+ * Disk configuration.
+ */
+ @JsonProperty(value = "recoveryPointDiskConfiguration")
+ private RecoveryPointDiskConfiguration recoveryPointDiskConfiguration;
+
+ /**
+ * Get type of the backup copy.
+ *
+ * @return the recoveryPointType value
+ */
+ public String recoveryPointType() {
+ return this.recoveryPointType;
+ }
+
+ /**
+ * Get time at which this backup copy was created.
+ *
+ * @return the recoveryPointTime value
+ */
+ public DateTime recoveryPointTime() {
+ return this.recoveryPointTime;
+ }
+
+ /**
+ * Get additional information associated with this backup copy.
+ *
+ * @return the recoveryPointAdditionalInfo value
+ */
+ public String recoveryPointAdditionalInfo() {
+ return this.recoveryPointAdditionalInfo;
+ }
+
+ /**
+ * Get storage type of the VM whose backup copy is created.
+ *
+ * @return the sourceVMStorageType value
+ */
+ public String sourceVMStorageType() {
+ return this.sourceVMStorageType;
+ }
+
+ /**
+ * Get identifies whether the VM was encrypted when the backup copy is created.
+ *
+ * @return the isSourceVMEncrypted value
+ */
+ public Boolean isSourceVMEncrypted() {
+ return this.isSourceVMEncrypted;
+ }
+
+ /**
+ * Get required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true.
+ *
+ * @return the keyAndSecret value
+ */
+ public KeyAndSecretDetails keyAndSecret() {
+ return this.keyAndSecret;
+ }
+
+ /**
+ * Set required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true.
+ *
+ * @param keyAndSecret the keyAndSecret value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withKeyAndSecret(KeyAndSecretDetails keyAndSecret) {
+ this.keyAndSecret = keyAndSecret;
+ return this;
+ }
+
+ /**
+ * Get is the session to recover items from this backup copy still active.
+ *
+ * @return the isInstantIlrSessionActive value
+ */
+ public Boolean isInstantIlrSessionActive() {
+ return this.isInstantIlrSessionActive;
+ }
+
+ /**
+ * Set is the session to recover items from this backup copy still active.
+ *
+ * @param isInstantIlrSessionActive the isInstantIlrSessionActive value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withIsInstantIlrSessionActive(Boolean isInstantIlrSessionActive) {
+ this.isInstantIlrSessionActive = isInstantIlrSessionActive;
+ return this;
+ }
+
+ /**
+ * Get recovery point tier information.
+ *
+ * @return the recoveryPointTierDetails value
+ */
+ public List recoveryPointTierDetails() {
+ return this.recoveryPointTierDetails;
+ }
+
+ /**
+ * Set recovery point tier information.
+ *
+ * @param recoveryPointTierDetails the recoveryPointTierDetails value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withRecoveryPointTierDetails(List recoveryPointTierDetails) {
+ this.recoveryPointTierDetails = recoveryPointTierDetails;
+ return this;
+ }
+
+ /**
+ * Get whether VM is with Managed Disks.
+ *
+ * @return the isManagedVirtualMachine value
+ */
+ public Boolean isManagedVirtualMachine() {
+ return this.isManagedVirtualMachine;
+ }
+
+ /**
+ * Set whether VM is with Managed Disks.
+ *
+ * @param isManagedVirtualMachine the isManagedVirtualMachine value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withIsManagedVirtualMachine(Boolean isManagedVirtualMachine) {
+ this.isManagedVirtualMachine = isManagedVirtualMachine;
+ return this;
+ }
+
+ /**
+ * Get virtual Machine Size.
+ *
+ * @return the virtualMachineSize value
+ */
+ public String virtualMachineSize() {
+ return this.virtualMachineSize;
+ }
+
+ /**
+ * Set virtual Machine Size.
+ *
+ * @param virtualMachineSize the virtualMachineSize value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withVirtualMachineSize(String virtualMachineSize) {
+ this.virtualMachineSize = virtualMachineSize;
+ return this;
+ }
+
+ /**
+ * Get original Storage Account Option.
+ *
+ * @return the originalStorageAccountOption value
+ */
+ public Boolean originalStorageAccountOption() {
+ return this.originalStorageAccountOption;
+ }
+
+ /**
+ * Set original Storage Account Option.
+ *
+ * @param originalStorageAccountOption the originalStorageAccountOption value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withOriginalStorageAccountOption(Boolean originalStorageAccountOption) {
+ this.originalStorageAccountOption = originalStorageAccountOption;
+ return this;
+ }
+
+ /**
+ * Get oS type.
+ *
+ * @return the osType value
+ */
+ public String osType() {
+ return this.osType;
+ }
+
+ /**
+ * Set oS type.
+ *
+ * @param osType the osType value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withOsType(String osType) {
+ this.osType = osType;
+ return this;
+ }
+
+ /**
+ * Get disk configuration.
+ *
+ * @return the recoveryPointDiskConfiguration value
+ */
+ public RecoveryPointDiskConfiguration recoveryPointDiskConfiguration() {
+ return this.recoveryPointDiskConfiguration;
+ }
+
+ /**
+ * Set disk configuration.
+ *
+ * @param recoveryPointDiskConfiguration the recoveryPointDiskConfiguration value to set
+ * @return the IaasVMRecoveryPoint object itself.
+ */
+ public IaasVMRecoveryPoint withRecoveryPointDiskConfiguration(RecoveryPointDiskConfiguration recoveryPointDiskConfiguration) {
+ this.recoveryPointDiskConfiguration = recoveryPointDiskConfiguration;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRestoreRequest.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRestoreRequest.java
new file mode 100644
index 000000000000..9c37ba0a6202
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IaasVMRestoreRequest.java
@@ -0,0 +1,445 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * IaaS VM workload-specific restore.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType", defaultImpl = IaasVMRestoreRequest.class)
+@JsonTypeName("IaasVMRestoreRequest")
+public class IaasVMRestoreRequest extends RestoreRequest {
+ /**
+ * ID of the backup copy to be recovered.
+ */
+ @JsonProperty(value = "recoveryPointId")
+ private String recoveryPointId;
+
+ /**
+ * Type of this recovery. Possible values include: 'Invalid',
+ * 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ */
+ @JsonProperty(value = "recoveryType")
+ private RecoveryType recoveryType;
+
+ /**
+ * Fully qualified ARM ID of the VM which is being recovered.
+ */
+ @JsonProperty(value = "sourceResourceId")
+ private String sourceResourceId;
+
+ /**
+ * This is the complete ARM Id of the VM that will be created.
+ * For e.g.
+ * /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}.
+ */
+ @JsonProperty(value = "targetVirtualMachineId")
+ private String targetVirtualMachineId;
+
+ /**
+ * This is the ARM Id of the resource group that you want to create for
+ * this Virtual machine and other artifacts.
+ * For e.g. /subscriptions/{subId}/resourcegroups/{rg}.
+ */
+ @JsonProperty(value = "targetResourceGroupId")
+ private String targetResourceGroupId;
+
+ /**
+ * Fully qualified ARM ID of the storage account to which the VM has to be
+ * restored.
+ */
+ @JsonProperty(value = "storageAccountId")
+ private String storageAccountId;
+
+ /**
+ * This is the virtual network Id of the vnet that will be attached to the
+ * virtual machine.
+ * User will be validated for join action permissions in the linked access.
+ */
+ @JsonProperty(value = "virtualNetworkId")
+ private String virtualNetworkId;
+
+ /**
+ * Subnet ID, is the subnet ID associated with the to be restored VM. For
+ * Classic VMs it would be
+ * {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it
+ * would be ARM resource ID used to represent
+ * the subnet.
+ */
+ @JsonProperty(value = "subnetId")
+ private String subnetId;
+
+ /**
+ * Fully qualified ARM ID of the domain name to be associated to the VM
+ * being restored. This applies only to Classic
+ * Virtual Machines.
+ */
+ @JsonProperty(value = "targetDomainNameId")
+ private String targetDomainNameId;
+
+ /**
+ * Region in which the virtual machine is restored.
+ */
+ @JsonProperty(value = "region")
+ private String region;
+
+ /**
+ * Affinity group associated to VM to be restored. Used only for Classic
+ * Compute Virtual Machines.
+ */
+ @JsonProperty(value = "affinityGroup")
+ private String affinityGroup;
+
+ /**
+ * Should a new cloud service be created while restoring the VM. If this is
+ * false, VM will be restored to the same
+ * cloud service as it was at the time of backup.
+ */
+ @JsonProperty(value = "createNewCloudService")
+ private Boolean createNewCloudService;
+
+ /**
+ * Original Storage Account Option.
+ */
+ @JsonProperty(value = "originalStorageAccountOption")
+ private Boolean originalStorageAccountOption;
+
+ /**
+ * Details needed if the VM was encrypted at the time of backup.
+ */
+ @JsonProperty(value = "encryptionDetails")
+ private EncryptionDetails encryptionDetails;
+
+ /**
+ * List of Disk LUNs for partial restore.
+ */
+ @JsonProperty(value = "restoreDiskLunList")
+ private List restoreDiskLunList;
+
+ /**
+ * Get iD of the backup copy to be recovered.
+ *
+ * @return the recoveryPointId value
+ */
+ public String recoveryPointId() {
+ return this.recoveryPointId;
+ }
+
+ /**
+ * Set iD of the backup copy to be recovered.
+ *
+ * @param recoveryPointId the recoveryPointId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withRecoveryPointId(String recoveryPointId) {
+ this.recoveryPointId = recoveryPointId;
+ return this;
+ }
+
+ /**
+ * Get type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @return the recoveryType value
+ */
+ public RecoveryType recoveryType() {
+ return this.recoveryType;
+ }
+
+ /**
+ * Set type of this recovery. Possible values include: 'Invalid', 'OriginalLocation', 'AlternateLocation', 'RestoreDisks', 'Offline'.
+ *
+ * @param recoveryType the recoveryType value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withRecoveryType(RecoveryType recoveryType) {
+ this.recoveryType = recoveryType;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the VM which is being recovered.
+ *
+ * @return the sourceResourceId value
+ */
+ public String sourceResourceId() {
+ return this.sourceResourceId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the VM which is being recovered.
+ *
+ * @param sourceResourceId the sourceResourceId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withSourceResourceId(String sourceResourceId) {
+ this.sourceResourceId = sourceResourceId;
+ return this;
+ }
+
+ /**
+ * Get this is the complete ARM Id of the VM that will be created.
+ For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}.
+ *
+ * @return the targetVirtualMachineId value
+ */
+ public String targetVirtualMachineId() {
+ return this.targetVirtualMachineId;
+ }
+
+ /**
+ * Set this is the complete ARM Id of the VM that will be created.
+ For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}.
+ *
+ * @param targetVirtualMachineId the targetVirtualMachineId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withTargetVirtualMachineId(String targetVirtualMachineId) {
+ this.targetVirtualMachineId = targetVirtualMachineId;
+ return this;
+ }
+
+ /**
+ * Get this is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.
+ For e.g. /subscriptions/{subId}/resourcegroups/{rg}.
+ *
+ * @return the targetResourceGroupId value
+ */
+ public String targetResourceGroupId() {
+ return this.targetResourceGroupId;
+ }
+
+ /**
+ * Set this is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.
+ For e.g. /subscriptions/{subId}/resourcegroups/{rg}.
+ *
+ * @param targetResourceGroupId the targetResourceGroupId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withTargetResourceGroupId(String targetResourceGroupId) {
+ this.targetResourceGroupId = targetResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the storage account to which the VM has to be restored.
+ *
+ * @return the storageAccountId value
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the storage account to which the VM has to be restored.
+ *
+ * @param storageAccountId the storageAccountId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Get this is the virtual network Id of the vnet that will be attached to the virtual machine.
+ User will be validated for join action permissions in the linked access.
+ *
+ * @return the virtualNetworkId value
+ */
+ public String virtualNetworkId() {
+ return this.virtualNetworkId;
+ }
+
+ /**
+ * Set this is the virtual network Id of the vnet that will be attached to the virtual machine.
+ User will be validated for join action permissions in the linked access.
+ *
+ * @param virtualNetworkId the virtualNetworkId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withVirtualNetworkId(String virtualNetworkId) {
+ this.virtualNetworkId = virtualNetworkId;
+ return this;
+ }
+
+ /**
+ * Get subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be
+ {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent
+ the subnet.
+ *
+ * @return the subnetId value
+ */
+ public String subnetId() {
+ return this.subnetId;
+ }
+
+ /**
+ * Set subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be
+ {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent
+ the subnet.
+ *
+ * @param subnetId the subnetId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withSubnetId(String subnetId) {
+ this.subnetId = subnetId;
+ return this;
+ }
+
+ /**
+ * Get fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic
+ Virtual Machines.
+ *
+ * @return the targetDomainNameId value
+ */
+ public String targetDomainNameId() {
+ return this.targetDomainNameId;
+ }
+
+ /**
+ * Set fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic
+ Virtual Machines.
+ *
+ * @param targetDomainNameId the targetDomainNameId value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withTargetDomainNameId(String targetDomainNameId) {
+ this.targetDomainNameId = targetDomainNameId;
+ return this;
+ }
+
+ /**
+ * Get region in which the virtual machine is restored.
+ *
+ * @return the region value
+ */
+ public String region() {
+ return this.region;
+ }
+
+ /**
+ * Set region in which the virtual machine is restored.
+ *
+ * @param region the region value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withRegion(String region) {
+ this.region = region;
+ return this;
+ }
+
+ /**
+ * Get affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.
+ *
+ * @return the affinityGroup value
+ */
+ public String affinityGroup() {
+ return this.affinityGroup;
+ }
+
+ /**
+ * Set affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.
+ *
+ * @param affinityGroup the affinityGroup value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withAffinityGroup(String affinityGroup) {
+ this.affinityGroup = affinityGroup;
+ return this;
+ }
+
+ /**
+ * Get should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same
+ cloud service as it was at the time of backup.
+ *
+ * @return the createNewCloudService value
+ */
+ public Boolean createNewCloudService() {
+ return this.createNewCloudService;
+ }
+
+ /**
+ * Set should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same
+ cloud service as it was at the time of backup.
+ *
+ * @param createNewCloudService the createNewCloudService value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withCreateNewCloudService(Boolean createNewCloudService) {
+ this.createNewCloudService = createNewCloudService;
+ return this;
+ }
+
+ /**
+ * Get original Storage Account Option.
+ *
+ * @return the originalStorageAccountOption value
+ */
+ public Boolean originalStorageAccountOption() {
+ return this.originalStorageAccountOption;
+ }
+
+ /**
+ * Set original Storage Account Option.
+ *
+ * @param originalStorageAccountOption the originalStorageAccountOption value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withOriginalStorageAccountOption(Boolean originalStorageAccountOption) {
+ this.originalStorageAccountOption = originalStorageAccountOption;
+ return this;
+ }
+
+ /**
+ * Get details needed if the VM was encrypted at the time of backup.
+ *
+ * @return the encryptionDetails value
+ */
+ public EncryptionDetails encryptionDetails() {
+ return this.encryptionDetails;
+ }
+
+ /**
+ * Set details needed if the VM was encrypted at the time of backup.
+ *
+ * @param encryptionDetails the encryptionDetails value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withEncryptionDetails(EncryptionDetails encryptionDetails) {
+ this.encryptionDetails = encryptionDetails;
+ return this;
+ }
+
+ /**
+ * Get list of Disk LUNs for partial restore.
+ *
+ * @return the restoreDiskLunList value
+ */
+ public List restoreDiskLunList() {
+ return this.restoreDiskLunList;
+ }
+
+ /**
+ * Set list of Disk LUNs for partial restore.
+ *
+ * @param restoreDiskLunList the restoreDiskLunList value to set
+ * @return the IaasVMRestoreRequest object itself.
+ */
+ public IaasVMRestoreRequest withRestoreDiskLunList(List restoreDiskLunList) {
+ this.restoreDiskLunList = restoreDiskLunList;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryInfo.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryInfo.java
new file mode 100644
index 000000000000..b625dc07fa74
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryInfo.java
@@ -0,0 +1,104 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details about inquired protectable items under a given container.
+ */
+public class InquiryInfo {
+ /**
+ * Inquiry Status for this container such as
+ * InProgress | Failed | Succeeded.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Error Details if the Status is non-success.
+ */
+ @JsonProperty(value = "errorDetail")
+ private ErrorDetail errorDetail;
+
+ /**
+ * Inquiry Details which will have workload specific details.
+ * For e.g. - For SQL and oracle this will contain different details.
+ */
+ @JsonProperty(value = "inquiryDetails")
+ private List inquiryDetails;
+
+ /**
+ * Get inquiry Status for this container such as
+ InProgress | Failed | Succeeded.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set inquiry Status for this container such as
+ InProgress | Failed | Succeeded.
+ *
+ * @param status the status value to set
+ * @return the InquiryInfo object itself.
+ */
+ public InquiryInfo withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get error Details if the Status is non-success.
+ *
+ * @return the errorDetail value
+ */
+ public ErrorDetail errorDetail() {
+ return this.errorDetail;
+ }
+
+ /**
+ * Set error Details if the Status is non-success.
+ *
+ * @param errorDetail the errorDetail value to set
+ * @return the InquiryInfo object itself.
+ */
+ public InquiryInfo withErrorDetail(ErrorDetail errorDetail) {
+ this.errorDetail = errorDetail;
+ return this;
+ }
+
+ /**
+ * Get inquiry Details which will have workload specific details.
+ For e.g. - For SQL and oracle this will contain different details.
+ *
+ * @return the inquiryDetails value
+ */
+ public List inquiryDetails() {
+ return this.inquiryDetails;
+ }
+
+ /**
+ * Set inquiry Details which will have workload specific details.
+ For e.g. - For SQL and oracle this will contain different details.
+ *
+ * @param inquiryDetails the inquiryDetails value to set
+ * @return the InquiryInfo object itself.
+ */
+ public InquiryInfo withInquiryDetails(List inquiryDetails) {
+ this.inquiryDetails = inquiryDetails;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryStatus.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryStatus.java
new file mode 100644
index 000000000000..5afe065673cc
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryStatus.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InquiryStatus.
+ */
+public final class InquiryStatus extends ExpandableStringEnum {
+ /** Static value Invalid for InquiryStatus. */
+ public static final InquiryStatus INVALID = fromString("Invalid");
+
+ /** Static value Success for InquiryStatus. */
+ public static final InquiryStatus SUCCESS = fromString("Success");
+
+ /** Static value Failed for InquiryStatus. */
+ public static final InquiryStatus FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a InquiryStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InquiryStatus
+ */
+ @JsonCreator
+ public static InquiryStatus fromString(String name) {
+ return fromString(name, InquiryStatus.class);
+ }
+
+ /**
+ * @return known InquiryStatus values
+ */
+ public static Collection values() {
+ return values(InquiryStatus.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryValidation.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryValidation.java
new file mode 100644
index 000000000000..d6c026af6567
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InquiryValidation.java
@@ -0,0 +1,86 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Validation for inquired protectable items under a given container.
+ */
+public class InquiryValidation {
+ /**
+ * Status for the Inquiry Validation.
+ */
+ @JsonProperty(value = "status")
+ private String status;
+
+ /**
+ * Error Detail in case the status is non-success.
+ */
+ @JsonProperty(value = "errorDetail")
+ private ErrorDetail errorDetail;
+
+ /**
+ * Error Additional Detail in case the status is non-success.
+ */
+ @JsonProperty(value = "additionalDetail", access = JsonProperty.Access.WRITE_ONLY)
+ private String additionalDetail;
+
+ /**
+ * Get status for the Inquiry Validation.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Set status for the Inquiry Validation.
+ *
+ * @param status the status value to set
+ * @return the InquiryValidation object itself.
+ */
+ public InquiryValidation withStatus(String status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get error Detail in case the status is non-success.
+ *
+ * @return the errorDetail value
+ */
+ public ErrorDetail errorDetail() {
+ return this.errorDetail;
+ }
+
+ /**
+ * Set error Detail in case the status is non-success.
+ *
+ * @param errorDetail the errorDetail value to set
+ * @return the InquiryValidation object itself.
+ */
+ public InquiryValidation withErrorDetail(ErrorDetail errorDetail) {
+ this.errorDetail = errorDetail;
+ return this;
+ }
+
+ /**
+ * Get error Additional Detail in case the status is non-success.
+ *
+ * @return the additionalDetail value
+ */
+ public String additionalDetail() {
+ return this.additionalDetail;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantItemRecoveryTarget.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantItemRecoveryTarget.java
new file mode 100644
index 000000000000..4a353207cfe0
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantItemRecoveryTarget.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Target details for file / folder restore.
+ */
+public class InstantItemRecoveryTarget {
+ /**
+ * List of client scripts.
+ */
+ @JsonProperty(value = "clientScripts")
+ private List clientScripts;
+
+ /**
+ * Get list of client scripts.
+ *
+ * @return the clientScripts value
+ */
+ public List clientScripts() {
+ return this.clientScripts;
+ }
+
+ /**
+ * Set list of client scripts.
+ *
+ * @param clientScripts the clientScripts value to set
+ * @return the InstantItemRecoveryTarget object itself.
+ */
+ public InstantItemRecoveryTarget withClientScripts(List clientScripts) {
+ this.clientScripts = clientScripts;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantRPAdditionalDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantRPAdditionalDetails.java
new file mode 100644
index 000000000000..feea48f520d3
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/InstantRPAdditionalDetails.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The InstantRPAdditionalDetails model.
+ */
+public class InstantRPAdditionalDetails {
+ /**
+ * The azureBackupRGNamePrefix property.
+ */
+ @JsonProperty(value = "azureBackupRGNamePrefix")
+ private String azureBackupRGNamePrefix;
+
+ /**
+ * The azureBackupRGNameSuffix property.
+ */
+ @JsonProperty(value = "azureBackupRGNameSuffix")
+ private String azureBackupRGNameSuffix;
+
+ /**
+ * Get the azureBackupRGNamePrefix value.
+ *
+ * @return the azureBackupRGNamePrefix value
+ */
+ public String azureBackupRGNamePrefix() {
+ return this.azureBackupRGNamePrefix;
+ }
+
+ /**
+ * Set the azureBackupRGNamePrefix value.
+ *
+ * @param azureBackupRGNamePrefix the azureBackupRGNamePrefix value to set
+ * @return the InstantRPAdditionalDetails object itself.
+ */
+ public InstantRPAdditionalDetails withAzureBackupRGNamePrefix(String azureBackupRGNamePrefix) {
+ this.azureBackupRGNamePrefix = azureBackupRGNamePrefix;
+ return this;
+ }
+
+ /**
+ * Get the azureBackupRGNameSuffix value.
+ *
+ * @return the azureBackupRGNameSuffix value
+ */
+ public String azureBackupRGNameSuffix() {
+ return this.azureBackupRGNameSuffix;
+ }
+
+ /**
+ * Set the azureBackupRGNameSuffix value.
+ *
+ * @param azureBackupRGNameSuffix the azureBackupRGNameSuffix value to set
+ * @return the InstantRPAdditionalDetails object itself.
+ */
+ public InstantRPAdditionalDetails withAzureBackupRGNameSuffix(String azureBackupRGNameSuffix) {
+ this.azureBackupRGNameSuffix = azureBackupRGNameSuffix;
+ return this;
+ }
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IntentItemType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IntentItemType.java
new file mode 100644
index 000000000000..d08c50f23882
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/IntentItemType.java
@@ -0,0 +1,46 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for IntentItemType.
+ */
+public final class IntentItemType extends ExpandableStringEnum {
+ /** Static value Invalid for IntentItemType. */
+ public static final IntentItemType INVALID = fromString("Invalid");
+
+ /** Static value SQLInstance for IntentItemType. */
+ public static final IntentItemType SQLINSTANCE = fromString("SQLInstance");
+
+ /** Static value SQLAvailabilityGroupContainer for IntentItemType. */
+ public static final IntentItemType SQLAVAILABILITY_GROUP_CONTAINER = fromString("SQLAvailabilityGroupContainer");
+
+ /**
+ * Creates or finds a IntentItemType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding IntentItemType
+ */
+ @JsonCreator
+ public static IntentItemType fromString(String name) {
+ return fromString(name, IntentItemType.class);
+ }
+
+ /**
+ * @return known IntentItemType values
+ */
+ public static Collection values() {
+ return values(IntentItemType.class);
+ }
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ItemLevelRecoveryConnections.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ItemLevelRecoveryConnections.java
new file mode 100644
index 000000000000..6d679da2db41
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/ItemLevelRecoveryConnections.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.ItemLevelRecoveryConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ItemLevelRecoveryConnections.
+ */
+public interface ItemLevelRecoveryConnections extends HasInner {
+ /**
+ * Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file
+ explorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status of
+ provisioning, call GetProtectedItemOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be provisioned
+ for this backed up data.
+ * @param parameters resource ILR request
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable provisionAsync(String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName, String recoveryPointId, ILRRequestResource parameters);
+
+ /**
+ * Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer
+ displaying all recoverable files and folders. This is an asynchronous operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param fabricName Fabric name associated with the backed up items.
+ * @param containerName Container name associated with the backed up items.
+ * @param protectedItemName Backed up item name whose files/folders are to be restored.
+ * @param recoveryPointId Recovery point ID which represents backed up data. iSCSI connection will be revoked for
+ this backed up data.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable revokeAsync(String vaultName, String resourceGroupName, String fabricName, String containerName, String protectedItemName, String recoveryPointId);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobCancellations.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobCancellations.java
new file mode 100644
index 000000000000..eb0faf581ba4
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobCancellations.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobCancellationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing JobCancellations.
+ */
+public interface JobCancellations extends HasInner {
+ /**
+ * Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call
+ GetCancelOperationResult API.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job to cancel.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable triggerAsync(String vaultName, String resourceGroupName, String jobName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobDetails.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobDetails.java
new file mode 100644
index 000000000000..d80e8af617b3
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobDetails.java
@@ -0,0 +1,32 @@
+/**
+ * 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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Observable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobDetailsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing JobDetails.
+ */
+public interface JobDetails extends HasInner {
+ /**
+ * Gets extended information associated with the job.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Name of the job whose details are to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String vaultName, String resourceGroupName, String jobName);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationResults.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationResults.java
new file mode 100644
index 000000000000..243864894c64
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationResults.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import rx.Completable;
+import com.microsoft.azure.management.recoveryservices.backup.v2020_02_02.implementation.JobOperationResultsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing JobOperationResults.
+ */
+public interface JobOperationResults extends HasInner {
+ /**
+ * Fetches the result of any operation.
+ *
+ * @param vaultName The name of the recovery services vault.
+ * @param resourceGroupName The name of the resource group where the recovery services vault is present.
+ * @param jobName Job name whose operation result has to be fetched.
+ * @param operationId OperationID which represents the operation whose result has to be fetched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getAsync(String vaultName, String resourceGroupName, String jobName, String operationId);
+
+}
diff --git a/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationType.java b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationType.java
new file mode 100644
index 000000000000..02ad571420d3
--- /dev/null
+++ b/sdk/recoveryservices.backup/mgmt-v2020_02_02/src/main/java/com/microsoft/azure/management/recoveryservices/backup/v2020_02_02/JobOperationType.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 1.0.0.0
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+package com.microsoft.azure.management.recoveryservices.backup.v2020_02_02;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JobOperationType.
+ */
+public final class JobOperationType extends ExpandableStringEnum {
+ /** Static value Invalid for JobOperationType. */
+ public static final JobOperationType INVALID = fromString("Invalid");
+
+ /** Static value Register for JobOperationType. */
+ public static final JobOperationType REGISTER = fromString("Register");
+
+ /** Static value UnRegister for JobOperationType. */
+ public static final JobOperationType UN_REGISTER = fromString("UnRegister");
+
+ /** Static value ConfigureBackup for JobOperationType. */
+ public static final JobOperationType CONFIGURE_BACKUP = fromString("ConfigureBackup");
+
+ /** Static value Backup for JobOperationType. */
+ public static final JobOperationType BACKUP = fromString("Backup");
+
+ /** Static value Restore for JobOperationType. */
+ public static final JobOperationType RESTORE = fromString("Restore");
+
+ /** Static value DisableBackup for JobOperationType. */
+ public static final JobOperationType DISABLE_BACKUP = fromString("DisableBackup");
+
+ /** Static value DeleteBackupData for JobOperationType. */
+ public static final JobOperationType DELETE_BACKUP_DATA = fromString("DeleteBackupData");
+
+ /** Static value CrossRegionRestore for JobOperationType. */
+ public static final JobOperationType CROSS_REGION_RESTORE = fromString("CrossRegionRestore");
+
+ /** Static value Undelete for JobOperationType. */
+ public static final JobOperationType UNDELETE = fromString("Undelete");
+
+ /**
+ * Creates or finds a JobOperationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JobOperationType
+ */
+ @JsonCreator
+ public static JobOperationType fromString(String name) {
+ return fromString(name, JobOperationType.class);
+ }
+
+ /**
+ * @return known JobOperationType values
+ */
+ public static Collection