/// <summary>
 /// Initializes a new instance of the <see cref="ProtectionSourceTreeInfo" /> class.
 /// </summary>
 /// <param name="applications">Array of applications hierarchy registered on this node.  Specifies the application type and the list of instances of the application objects. For example for SQL Server, this list provides the SQL Server instances running on a VM or a Physical Server..</param>
 /// <param name="entityPermissionInfo">entityPermissionInfo.</param>
 /// <param name="logicalSizeBytes">Specifies the logical size of the Protection Source in bytes..</param>
 /// <param name="registrationInfo">Specifies registration information for a root node in a Protection Sources tree. A root node represents a registered Source on the Cohesity Cluster, such as a vCenter Server..</param>
 /// <param name="rootNode">Specifies the Protection Source for the root node of the Protection Source tree..</param>
 /// <param name="stats">Specifies the stats of protection for a Protection Source Tree..</param>
 /// <param name="statsByEnv">Specifies the breakdown of the stats of protection by environment. overrideDescription: true.</param>
 public ProtectionSourceTreeInfo(List <ApplicationInfo> applications = default(List <ApplicationInfo>), EntityPermissionInformation entityPermissionInfo = default(EntityPermissionInformation), long?logicalSizeBytes = default(long?), RegisteredSourceInfo registrationInfo = default(RegisteredSourceInfo), ProtectionSource rootNode = default(ProtectionSource), ProtectionSummary stats = default(ProtectionSummary), List <ProtectionSummaryByEnv> statsByEnv = default(List <ProtectionSummaryByEnv>))
 {
     this.Applications         = applications;
     this.LogicalSizeBytes     = logicalSizeBytes;
     this.RegistrationInfo     = registrationInfo;
     this.RootNode             = rootNode;
     this.Stats                = stats;
     this.StatsByEnv           = statsByEnv;
     this.Applications         = applications;
     this.EntityPermissionInfo = entityPermissionInfo;
     this.LogicalSizeBytes     = logicalSizeBytes;
     this.RegistrationInfo     = registrationInfo;
     this.RootNode             = rootNode;
     this.Stats                = stats;
     this.StatsByEnv           = statsByEnv;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ProtectionSourceNode" /> class.
 /// </summary>
 /// <param name="applicationNodes">Array of Child Subtrees.  Specifies the child subtree used to store additional application-level Objects. Different environments use the subtree to store application-level information. For example for SQL Server, this subtree stores the SQL Server instances running on a VM..</param>
 /// <param name="entityPaginationParameters">entityPaginationParameters.</param>
 /// <param name="entityPermissionInfo">entityPermissionInfo.</param>
 /// <param name="logicalSize">Specifies the logical size of the data in bytes for the Object on this node. Presence of this field indicates this node is a leaf node..</param>
 /// <param name="nodes">Array of Child Nodes.  Specifies children of the current node in the Protection Sources hierarchy. When representing Objects in memory, the entire Object subtree hierarchy is represented. You can use this subtree to navigate down the Object hierarchy..</param>
 /// <param name="protectedSourcesSummary">Array of Protected Objects.  Specifies aggregated information about all the child Objects of this node that are currently protected by a Protection Job. There is one entry for each environment that is being backed up. The aggregated information for the Object hierarchy&#39;s environment will be available at the 0th index of the vector..</param>
 /// <param name="protectionSource">Specifies the Protection Source for the current node..</param>
 /// <param name="registrationInfo">Specifies registration information for a root node in a Protection Sources tree. A root node represents a registered Source on the Cohesity Cluster, such as a vCenter Server..</param>
 /// <param name="unprotectedSourcesSummary">Array of Unprotected Sources.  Specifies aggregated information about all the child Objects of this node that are not protected by any Protection Jobs. The aggregated information for the Objects hierarchy&#39;s environment will be available at the 0th index of the vector. NOTE: This list includes Objects that were protected at some point in the past but are no longer actively protected. Snapshots containing these Objects may even exist on the Cohesity Cluster and be available to recover from..</param>
 public ProtectionSourceNode(List <ProtectionSourceNode> applicationNodes = default(List <ProtectionSourceNode>), PaginationParameters entityPaginationParameters = default(PaginationParameters), EntityPermissionInformation entityPermissionInfo = default(EntityPermissionInformation), long?logicalSize = default(long?), List <ProtectionSourceNode> nodes = default(List <ProtectionSourceNode>), List <AggregatedSubtreeInfo> protectedSourcesSummary = default(List <AggregatedSubtreeInfo>), ProtectionSource protectionSource = default(ProtectionSource), RegisteredSourceInfo registrationInfo = default(RegisteredSourceInfo), List <AggregatedSubtreeInfo> unprotectedSourcesSummary = default(List <AggregatedSubtreeInfo>))
 {
     this.ApplicationNodes           = applicationNodes;
     this.LogicalSize                = logicalSize;
     this.Nodes                      = nodes;
     this.ProtectedSourcesSummary    = protectedSourcesSummary;
     this.ProtectionSource           = protectionSource;
     this.RegistrationInfo           = registrationInfo;
     this.UnprotectedSourcesSummary  = unprotectedSourcesSummary;
     this.ApplicationNodes           = applicationNodes;
     this.EntityPaginationParameters = entityPaginationParameters;
     this.EntityPermissionInfo       = entityPermissionInfo;
     this.LogicalSize                = logicalSize;
     this.Nodes                      = nodes;
     this.ProtectedSourcesSummary    = protectedSourcesSummary;
     this.ProtectionSource           = protectionSource;
     this.RegistrationInfo           = registrationInfo;
     this.UnprotectedSourcesSummary  = unprotectedSourcesSummary;
 }