/// <summary>
 /// Initializes a new instance of the <see cref="ChannelCatalogStatus" /> class.
 /// </summary>
 /// <param name="ExportedProductCount">ExportedProductCount (required).</param>
 /// <param name="ColumnMappingStatus">ColumnMappingStatus (required).</param>
 /// <param name="CategoryMappingStatus">CategoryMappingStatus (required).</param>
 /// <param name="ApiSettingStatus">ApiSettingStatus (required).</param>
 public ChannelCatalogStatus(int?ExportedProductCount = default(int?), ColumnMappingStatus ColumnMappingStatus = default(ColumnMappingStatus), CategoryMappingStatus CategoryMappingStatus = default(CategoryMappingStatus), ApiSettingStatus ApiSettingStatus = default(ApiSettingStatus))
 {
     // to ensure "ExportedProductCount" is required (not null)
     if (ExportedProductCount == null)
     {
         throw new InvalidDataException("ExportedProductCount is a required property for ChannelCatalogStatus and cannot be null");
     }
     else
     {
         this.ExportedProductCount = ExportedProductCount;
     }
     // to ensure "ColumnMappingStatus" is required (not null)
     if (ColumnMappingStatus == null)
     {
         throw new InvalidDataException("ColumnMappingStatus is a required property for ChannelCatalogStatus and cannot be null");
     }
     else
     {
         this.ColumnMappingStatus = ColumnMappingStatus;
     }
     // to ensure "CategoryMappingStatus" is required (not null)
     if (CategoryMappingStatus == null)
     {
         throw new InvalidDataException("CategoryMappingStatus is a required property for ChannelCatalogStatus and cannot be null");
     }
     else
     {
         this.CategoryMappingStatus = CategoryMappingStatus;
     }
     // to ensure "ApiSettingStatus" is required (not null)
     if (ApiSettingStatus == null)
     {
         throw new InvalidDataException("ApiSettingStatus is a required property for ChannelCatalogStatus and cannot be null");
     }
     else
     {
         this.ApiSettingStatus = ApiSettingStatus;
     }
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CategoryMappingState" /> class.
 /// </summary>
 /// <param name="Status">Status.</param>
 /// <param name="UncategorizedProductCount">Indicates the uncategorized product count.</param>
 /// <param name="CategorizedWithoutCostProductCount">Indicates the categorized product count without cost defined on the category.</param>
 public CategoryMappingState(CategoryMappingStatus Status = default(CategoryMappingStatus), int?UncategorizedProductCount = default(int?), int?CategorizedWithoutCostProductCount = default(int?))
 {
     this.Status = Status;
     this.UncategorizedProductCount          = UncategorizedProductCount;
     this.CategorizedWithoutCostProductCount = CategorizedWithoutCostProductCount;
 }