public ImportBulkArtifactJob GetImportApi(int workspaceId)
        {
            var jobRequest = new ImportJobRequest(workspaceId)
            {
                ParentObjectIdSourceFieldName = PARENT_OBJECT_ID_SOURCE_FIELD_NAME
            };

            return(GetImportJob(jobRequest));
        }
        /* This is an extension and should probably be in a separate class
         * /// <summary>
         * /// Get data table from folder location
         * /// </summary>
         * /// <param name="importJob">import job related to dataTable</param>
         * /// <param name="folder">native folder location to get files</param>
         * /// <param name="prepareDataTableAction">action to customize datatable</param>
         * /// <param name="fillDataRow">action to add extra values to a datarow</param>
         * /// <returns></returns>
         * public DataTable GetDocumentDataTableFromFolder(
         *              this ImportBulkArtifactJob importJob,
         *              string folder,
         *              Action<DataTable> prepareDataTableAction = null,
         *              Action<DataRow> fillDataRow = null)
         * {
         *      if (string.IsNullOrEmpty(folder))
         *      {
         *              throw new ArgumentNullException(nameof(folder));
         *      }
         *      if (!Directory.Exists(folder))
         *      {
         *              throw new DirectoryNotFoundException();
         *      }
         *
         *      var dataTable = new DataTable();
         *      dataTable.Columns.Add(importJob.Settings.SelectedIdentifierFieldName);
         *      dataTable.Columns.Add(Constants.NATIVE_FILE);
         *      prepareDataTableAction?.Invoke(dataTable);
         *
         *      var files = Directory.EnumerateFiles(folder);
         *      foreach (var file in files)
         *      {
         *              var dataRow = dataTable.NewRow();
         *              dataRow[importJob.Settings.SelectedIdentifierFieldName] = Path.GetFileName(file);
         *              dataRow[Constants.NATIVE_FILE] = Path.GetFullPath(file);
         *              fillDataRow?.Invoke(dataRow);
         *              dataTable.Rows.Add(dataRow);
         *      }
         *
         *      return dataTable;
         * }
         */

        /// <summary>
        /// Wrapper to increase speed on creating files from a test data folder
        /// </summary>
        /// <param name="workspaceArtifactId">target workspace</param>
        /// <param name="folderName">location of test files</param>
        /// <param name="validateNativeTypes">use automatic engine to generate Relativity Native Type (defaulted False)</param>
        /// <param name="overwriteMode">how import will work on existant documents (defaulted APPEND)</param>
        public void ImportDocumentsInFolder(int workspaceArtifactId, string folderName, bool validateNativeTypes = false, OverwriteModeEnum overwriteMode = OverwriteModeEnum.Append)
        {
            var request = new ImportJobRequest(workspaceArtifactId)
            {
                DisableNativeValidation = !validateNativeTypes,
                OverwriteMode           = overwriteMode
            };
            var job = GetImportJob(request);

            // TODO: Figure out why the GetDocumetnDataTableFromFolder no longer exists
            //var dataTable = job.GetDocumentDataTableFromFolder(folderName);
            //Import(job, dataTable);
        }
        /// <summary>
        /// Get import job based on request
        /// </summary>
        /// <param name="request">request for import job</param>
        /// <returns></returns>
        public ImportBulkArtifactJob GetImportJob(ImportJobRequest request, IImportAPI iapi = null)
        {
            iapi = iapi ?? new ImportAPI(
                _configs.AdminUsername,
                _configs.AdminPassword,
                IMPORT_API_ENDPOINT());

            var fields     = iapi.GetWorkspaceFields(request.WorkspaceID, request.ArtifactTypeID);
            var identifier = fields.FirstOrDefault(field => field.FieldCategory == FieldCategoryEnum.Identifier);

            if (identifier == null)
            {
                throw new ApplicationException($"No identifier field found for workspace id {request.WorkspaceID}");
            }

            ImportBulkArtifactJob importJob;

            if (request.ArtifactTypeID == (int)ArtifactType.Document)
            {
                importJob = iapi.NewNativeDocumentImportJob();
            }
            else
            {
                importJob = iapi.NewObjectImportJob(request.ArtifactTypeID);
            }

            // The name of the document identifier column must match the name of the document identifier field
            // in the workspace.
            importJob.Settings.SelectedIdentifierFieldName = identifier.Name;
            // Specify the ArtifactID of the document identifier field, such as a control number.
            importJob.Settings.IdentityFieldId = identifier.ArtifactID;

            // Hydrate job properties based on request
            request.HydrateImportJob(importJob);

            return(importJob);
        }