/// <summary>
 /// Initializes a new instance of the MSTeamsPlanSettingsModel class.
 /// </summary>
 /// <param name="nameLabel">Large migration projects are often phased
 /// over several waves, each containing multiple plans.
 /// To easily generate migration reports for each project or wave, we
 /// recommend the Example name format Business Unit_Wave_Plan</param>
 /// <param name="onlyMigrateDocumentsLibrary">Whether to migrate only
 /// document libraries for the source team in the migration</param>
 /// <param name="migrateGroupPlanner">Whether to migrate Teams group
 /// planner
 /// Only supported if the connection configured with an Office 365
 /// Service Account</param>
 /// <param name="migrateMembers">Whether to migrate Teams
 /// members</param>
 /// <param name="policyId">the id of migration policy</param>
 /// <param name="databaseId">the id of migration database</param>
 /// <param name="schedule">the schedule for the migration</param>
 public MSTeamsPlanSettingsModel(PlanNameLabel nameLabel, bool?onlyMigrateDocumentsLibrary = default(bool?), bool?migrateGroupPlanner = default(bool?), bool?migrateMembers = default(bool?), ConversationsMigrationSettings conversationsMigrationSettings = default(ConversationsMigrationSettings), string policyId = default(string), string databaseId = default(string), SimpleSchedule schedule = default(SimpleSchedule), IList <string> planGroups = default(IList <string>))
 {
     OnlyMigrateDocumentsLibrary = onlyMigrateDocumentsLibrary;
     MigrateGroupPlanner         = migrateGroupPlanner;
     MigrateMembers = migrateMembers;
     ConversationsMigrationSettings = conversationsMigrationSettings;
     NameLabel  = nameLabel;
     PolicyId   = policyId;
     DatabaseId = databaseId;
     Schedule   = schedule;
     PlanGroups = planGroups;
     CustomInit();
 }
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (NameLabel == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "NameLabel");
     }
     if (ConversationsMigrationSettings != null)
     {
         ConversationsMigrationSettings.Validate();
     }
     if (NameLabel != null)
     {
         NameLabel.Validate();
     }
     if (Schedule != null)
     {
         Schedule.Validate();
     }
 }