Skip to content

Commit 8fe40b3

Browse files
committed
Merge pull request #177 from MabOneSdk/pragrawa-dev1
DataModel for ProtectedItem
2 parents 24f5e86 + 189b3f8 commit 8fe40b3

File tree

3 files changed

+157
-5
lines changed

3 files changed

+157
-5
lines changed

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Models/AzureVmModels/AzureRmRecoveryServicesAzureVmContainer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class AzureRmRecoveryServicesIaasVmContainer : AzureRmRecoveryServicesCon
3434
public string Status { get; set; }
3535

3636
public AzureRmRecoveryServicesIaasVmContainer(ProtectionContainerResource protectionContainer)
37-
: base(protectionContainer)
37+
: base(protectionContainer.Properties as ProtectionContainer)
3838
{
3939
AzureIaaSVMProtectionContainer iaasVmProtectionContainer = (AzureIaaSVMProtectionContainer)protectionContainer.Properties;
4040
ContainerType = ContainerType.AzureVM;

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Models/AzureVmModels/AzureRmRecoveryServicesAzureVmItem.cs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,68 @@
1717
using System.Linq;
1818
using System.Text;
1919
using System.Threading.Tasks;
20+
using Microsoft.Azure.Management.RecoveryServices.Backup.Models;
2021

2122
namespace Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlets.Models
2223
{
24+
/// <summary>
25+
/// Represents IaaSVM Item Class
26+
/// </summary>
2327
public class AzureRmRecoveryServicesIaasVmItem : AzureRmRecoveryServicesItemBase
28+
{
29+
public string VirtualMachineId { get; set; }
30+
31+
/// <summary>
32+
/// Protection Status of the item
33+
/// </summary>
34+
public string ProtectionStatus { get; set; }
35+
36+
/// <summary>
37+
/// Protection State of the item
38+
/// </summary>
39+
public string ProtectionState { get; set; }
40+
41+
/// <summary>
42+
/// Last Backup Status for the item
43+
/// </summary>
44+
public string LastBackupStatus { get; set; }
45+
46+
/// <summary>
47+
/// Protection Policy Name for the Item
48+
/// </summary>
49+
public string ProtectionPolicyName { get; set; }
50+
51+
/// <summary>
52+
/// ExtendedInfo for the Item
53+
/// </summary
54+
public AzureRmRecoveryServicesIaasVmItemExtendedInfo ExtendedInfo { get; set; }
55+
56+
public AzureRmRecoveryServicesIaasVmItem(AzureIaaSVMProtectedItem protectedItem,
57+
AzureRmRecoveryServicesContainerBase container)
58+
: base(protectedItem, container)
59+
{
60+
61+
}
62+
}
63+
64+
/// <summary>
65+
/// Represents IaaSVM Item ExtendedInfo Class
66+
/// </summary>
67+
public class AzureRmRecoveryServicesIaasVmItemExtendedInfo : AzureRmRecoveryServicesItemExtendedInfoBase
2468
{
69+
/// <summary>
70+
/// Oldest Recovery Point for the Item
71+
/// </summary
72+
public DateTime? OldestRecoveryPoint { get; set; }
73+
74+
/// <summary>
75+
/// Recovery Points Count for the Item
76+
/// </summary
77+
public int RecoveryPointCount { get; set; }
78+
79+
/// <summary>
80+
/// PolicyState for the Item
81+
/// </summary
82+
public string PolicyState { get; set; }
2583
}
2684
}

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Models/BaseObjects.cs

Lines changed: 98 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,45 @@ public virtual void Validate()
2929
}
3030
}
3131

32-
public class AzureRmRecoveryServicesContainerBase : AzureRmRecoveryServicesObjectBase
32+
/// <summary>
33+
/// Represents Recovery Services Vault Credentials Class
34+
/// </summary>
35+
public class AzureRmRecoveryServicesVaultCreds : AzureRmRecoveryServicesObjectBase
36+
{
37+
/// <summary>
38+
/// Name of the recovery services vault
39+
/// </summary>
40+
public string ResourceName { get; set; }
41+
42+
/// <summary>
43+
/// Name of the resource group
44+
/// </summary>
45+
public string ResourceGroupName { get; set; }
46+
47+
/// <summary>
48+
/// Location of the recovery services vault
49+
/// </summary>
50+
public string Location { get; set; }
51+
52+
public AzureRmRecoveryServicesVaultCreds(string resourceName, string resourceGroupName, string location)
53+
{
54+
ResourceName = resourceName;
55+
ResourceGroupName = resourceGroupName;
56+
Location = location;
57+
}
58+
}
59+
60+
public class AzureRmRecoveryServicesContainerContext : AzureRmRecoveryServicesObjectBase
61+
{
62+
public ContainerType ContainerType { get; set; }
63+
64+
public AzureRmRecoveryServicesContainerContext(string containerType)
65+
{
66+
67+
}
68+
}
69+
70+
public class AzureRmRecoveryServicesContainerBase : AzureRmRecoveryServicesContainerContext
3371
{
3472
/// <summary>
3573
/// Container Name
@@ -38,14 +76,70 @@ public class AzureRmRecoveryServicesContainerBase : AzureRmRecoveryServicesObjec
3876

3977
public ContainerType ContainerType { get; set; }
4078

41-
public AzureRmRecoveryServicesContainerBase(ProtectionContainerResource protectionContainer)
79+
public AzureRmRecoveryServicesContainerBase(ProtectionContainer protectionContainer)
80+
: base(protectionContainer.ContainerType)
4281
{
43-
Name = protectionContainer.Name;
82+
Name = protectionContainer.FriendlyName;
83+
4484
}
4585
}
4686

47-
public class AzureRmRecoveryServicesItemBase : AzureRmRecoveryServicesObjectBase
87+
/// <summary>
88+
/// Represents Azure Backup Item Context Class
89+
/// </summary>
90+
public class AzureRmRecoveryServicesItemContext : AzureRmRecoveryServicesContainerContext
4891
{
92+
/// <summary>
93+
/// BackupManagementType for the protected Item
94+
/// </summary>
95+
public BackupManagementType BackupManagementType { get; set; }
96+
97+
/// <summary>
98+
/// Workload Type of Item
99+
/// </summary>
100+
public WorkloadType WorkloadType { get; set; }
101+
102+
/// <summary>
103+
/// Unique name of the Container
104+
/// </summary>
105+
public string ContainerName { get; set; }
106+
107+
public AzureRmRecoveryServicesItemContext(ProtectedItem protectedItem,
108+
AzureRmRecoveryServicesContainerBase container)
109+
: base(container.ContainerType.ToString())
110+
{
111+
112+
}
113+
}
114+
115+
/// <summary>
116+
/// Represents Azure Backup Item Base Class
117+
/// </summary>
118+
public class AzureRmRecoveryServicesItemBase : AzureRmRecoveryServicesItemContext
119+
{
120+
/// <summary>
121+
/// Friendly Name for the Item
122+
/// </summary>
123+
public string Name { get; set; }
124+
125+
/// <summary>
126+
/// Last Recovery Point for the item
127+
/// </summary>
128+
public DateTime? LastRecoveryPoint { get; set; }
129+
130+
public AzureRmRecoveryServicesItemBase(ProtectedItem protectedItem,
131+
AzureRmRecoveryServicesContainerBase container)
132+
: base(protectedItem, container)
133+
{
134+
135+
}
136+
}
137+
138+
/// <summary>
139+
/// Represents Azure Backup Item ExtendedInfo Base Class
140+
/// </summary>
141+
public class AzureRmRecoveryServicesItemExtendedInfoBase : AzureRmRecoveryServicesObjectBase
142+
{
49143
}
50144

51145
public class AzureRmRecoveryServicesRecoveryPointBase : AzureRmRecoveryServicesObjectBase

0 commit comments

Comments
 (0)