lib/Endpoints.ps1
$TMApiResponseHandlers = @{ '4.4.3' = @{ GetProjectList = [scriptblock] { $ResultRows = ($response.Content | ConvertFrom-Json).rows ## Unwrap the 'cell' node for ($i = 0; $i -lt $ResultRows.Count; $i++) { $ResultRows[$i] = @{ id = $ResultRows[$i].id projectCode = $ResultRows[$i].cell[0] name = $ResultRows[$i].cell[1] startDate = $ResultRows[$i].cell[2] endDate = $ResultRows[$i].cell[3] } } return $ResultRows } GetBundleList = [scriptblock] { $ResultRows = $response.Content | ConvertFrom-Json return $ResultRows } GetDependency = [scriptblock] { #Needs to be tested! $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } } '4.5.9' = @{ GetProjectList = [scriptblock] { $ResultRows = ($response.Content | ConvertFrom-Json).rows ## Unwrap the 'cell' node for ($i = 0; $i -lt $ResultRows.Count; $i++) { $ResultRows[$i] = @{ id = $ResultRows[$i].id projectCode = $ResultRows[$i].cell[0] name = $ResultRows[$i].cell[1] startDate = $ResultRows[$i].cell[2] endDate = $ResultRows[$i].cell[3] } } return $ResultRows } GetBundleList = [scriptblock] { $ResultRows = ($response.Content | ConvertFrom-Json).rows ## Unwrap the 'cell' node for ($i = 0; $i -lt $ResultRows.Count; $i++) { $ResultRows[$i] = @{ id = $ResultRows[$i].id projectCode = $ResultRows[$i].cell[0] name = $ResultRows[$i].cell[1] startDate = $ResultRows[$i].cell[2] endDate = $ResultRows[$i].cell[3] } } return $ResultRows } GetDependency = [scriptblock] { #Needs to be tested! $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } } '4.6.3' = @{ GetProjectList = [scriptblock] { $ResultRows = ($response.Content | ConvertFrom-Json).rows ## Unwrap the 'cell' node for ($i = 0; $i -lt $ResultRows.Count; $i++) { $ResultRows[$i] = @{ id = $ResultRows[$i].id projectCode = $ResultRows[$i].cell[0] name = $ResultRows[$i].cell[1] startDate = $ResultRows[$i].cell[2] endDate = $ResultRows[$i].cell[3] } } return $ResultRows } GetDependency = [scriptblock] { #Needs to be tested! $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetBundleList = [scriptblock] { $ResultRows = $response.Content | ConvertFrom-Json return $ResultRows } } '4.7.1' = @{ GetProjectList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetBundleList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } '4.7.2' = @{ GetProjectList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetBundleList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } '4.7.3' = @{ GetProjectList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data.projects } GetBundleList = [scriptblock] { $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } '4.7.4' = @{ GetProjectList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data.projects } GetBundleList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } '4.7.5' = @{ GetProjectList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data.projects } GetBundleList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } '4.7.6' = @{ GetProjectList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data.projects } GetBundleList = [scriptblock] { # $Data = ($response.Content | ConvertFrom-Json).data # | ConvertTo-Hashtable $Data = ($response.Content | ConvertFrom-Json).data return $Data } GetDependency = [scriptblock] { $Data = $response.Content | ConvertFrom-Json Switch ($Data.Status) { "error" { Write-Host $Data.errors break } "success" { $Deps = $Data.data.dependencies if ( $AssetId ) { $Deps = $Deps | Where-Object { $_.assetId -eq $AssetId } } if ( $DependentId ) { $Deps = $Deps | Where-Object { $_.dependentId -eq $DependentId } } return $Deps break } Default { break } } } } } $TMApiEndpoints = @{ '4.4.3' = @{ signIn = '/auth/signIn' Project = '/project/listJson?isActive=active&_search=false&sidx=projectCode&sord=asc' addUserPreference = '/project/addUserPreference/' + $UriParam #get setProject = '/project/addUserPreference/' + $UriParam #get getEvent = 'moveEvent/listJson' Tasks = '/ws/task' # if ($JustMine) { $justMyTasks = 1 } else { $justMyTasks = 0 } # $uri += '?justMyTasks=' + $justMyTasks # if ($JustActionalble) { $vJustActionalble = 1 } else { $vJustActionalble = 0 } # $uri += '&justActionable=' + $vJustActionalble # ## Using a static one for now # $uri += '&project=' + $appconfig.TransitionManager.UserContext.projectId # } Credential = '/ws/credential' #/list, :id: ImportBatch = '/ws/import/batch' #/list, :id: Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' GetBundle = '/moveBundle/retrieveBundleList' SaveBundle = '/moveBundle/save' Actions = '/ws/apiAction' GetRecipe = '/ws/cookbook/recipe' #/list #?archived=n&context=All' GetDependency = '/ws/asset/listDependencies' #Untested - Copied from 4.7.1 } '4.5.6' = @{ signIn = '/auth/signIn' Project = '/project/listJson?isActive=active&_search=false&sidx=projectCode&sord=asc' addUserPreference = '/project/addUserPreference/' + $UriParam #get setProject = '/project/addUserPreference/' + $UriParam #get getEvent = 'moveEvent/listJson' Tasks = '/ws/task' # if ($JustMine) { $justMyTasks = 1 } else { $justMyTasks = 0 } # $uri += '?justMyTasks=' + $justMyTasks # if ($JustActionalble) { $vJustActionalble = 1 } else { $vJustActionalble = 0 } # $uri += '&justActionable=' + $vJustActionalble # ## Using a static one for now # $uri += '&project=' + $appconfig.TransitionManager.UserContext.projectId # } Credential = '/ws/credential' #/list, :id: ImportBatch = '/ws/import/batch' #/list, :id: Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' GetBundle = '/moveBundle/retrieveBundleList' SaveBundle = '/moveBundle/save' Actions = '/ws/apiAction' GetRecipe = '/ws/cookbook/recipe' #/list #?archived=n&context=All' GetDependency = '/ws/asset/listDependencies' #Untested - Copied from 4.7.1 } '4.5.9' = @{ signIn = '/auth/signIn' Project = '/project/listJson?isActive=active&_search=false&sidx=projectCode&sord=asc' addUserPreference = '/project/addUserPreference/' + $UriParam #get setProject = '/project/addUserPreference/' + $UriParam #get getEvent = 'moveEvent/listJson' Tasks = '/ws/task' # if ($JustMine) { $justMyTasks = 1 } else { $justMyTasks = 0 } # $uri += '?justMyTasks=' + $justMyTasks # if ($JustActionalble) { $vJustActionalble = 1 } else { $vJustActionalble = 0 } # $uri += '&justActionable=' + $vJustActionalble # ## Using a static one for now # $uri += '&project=' + $appconfig.TransitionManager.UserContext.projectId # } Credential = '/ws/credential' #/list, :id: ImportBatch = '/ws/import/batch' #/list, :id: Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' GetBundle = '/moveBundle/retrieveBundleList' SaveBundle = '/moveBundle/save' Actions = '/ws/apiAction' GetRecipe = '/ws/cookbook/recipe' #/list #?archived=n&context=All' GetDependency = '/ws/asset/listDependencies' #Untested - Copied from 4.7.1 } '4.6.3' = @{ signIn = '/auth/signIn' Project = '/project/listJson?isActive=active&_search=false&sidx=projectCode&sord=asc' addUserPreference = '/project/addUserPreference/' + $UriParam #get getEvent = 'moveEvent/listJson' Tasks = '/ws/task' Credential = '/ws/credential' #/list, :id: ImportBatch = '/ws/import/batch' #/list, :id: Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' GetBundle = '/moveBundle/retrieveBundleList' SaveBundle = '/moveBundle/save' Actions = '/ws/apiAction' GetRecipe = '/ws/cookbook/recipe' #/list #?archived=n&context=All' GetDependency = '/ws/asset/listDependencies' #Untested - Copied from 4.7.1 } '4.7.1' = @{ signIn = '/auth/signIn' Project = '/ws/project/lists' addUserPreference = 'tdstm/project/addUserPreference/' + $UriParam #get setProject = '/ws/project/viewEditProject/' + $ProjectId #get getEvent = 'moveEvent/listJson' getTasks = '/ws/task' # if ($JustMine) { $justMyTasks = 1 } else { $justMyTasks = 0 } # $uri += '?justMyTasks=' + $justMyTasks # if ($JustActionalble) { $vJustActionalble = 1 } else { $vJustActionalble = 0 } # $uri += '&justActionable=' + $vJustActionalble # ## Using a static one for now # $uri += '&project=' + $appconfig.TransitionManager.UserContext.projectId # } Credential = '/ws/credential' #/list, :id: ImportBatch = '/ws/import/batch' #/list, :id: Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' Actions = '/ws/apiAction' GetRecipe = '/ws/cookbook/recipe' GetDependency = '/ws/asset/listDependencies' } '4.7.2' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '4.7.3' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '4.7.4' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '4.7.5' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '4.7.6' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '5.0.1' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } '5.0.2' = @{ signIn = '/auth/signIn' ## Upgrading to API # setProject = '/ws/project/viewEditProject/' + $ProjectId #get Getting Depricated, API calls should include a project.id: assertion ## Needed Project = '/ws/project/userProjects' getEvent = 'moveEvent/listJson' Credential = '/ws/credential' #/list, :id: getTasks = '/ws/task' #includes Patch to update objects Provider = '/ws/dataingestion/provider' #/list, :id:, validateUnique/:id: ETLScript = '/ws/dataingestion/datascript' #/list, :id: ETLScriptSave = '/ws/dataingestion/dataScript/saveScript' ## Process ETL is now under one call -- Old no longer needed for v1 ImportBatch = '/ws/import/batch' #/list, :id: FileSystem = '/ws/fileSystem/uploadFileETLAssetImport' initiateTransformData = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/initiateTransformData" $uri += "?dataScriptId=" + $ETLScript.id $uri += "&filename=" + $ETLdataFileName } ETLProcess = { $uri = "https://" $uri += $instance $uri += "/tdstm/ws/progress/" + $ETLProgressKey } LoadBatch = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/assetImport/loadData?filename=" $uri += $EtlOutputKey } BatchProgress = { ## With the file uploaded, Initiate the ETL script on the server $uri = "https://" $uri += $instance $uri += "/tdstm/ws/import/batch/" $uri += $BatchId $uri += "/progress" } ## Process ETL is now under one call: # scheduleImportAPIActionCommand FieldSpecs = '/ws/customDomain/fieldSpec/ASSETS' # Adding Get, Set GetAssetOptions = '/assetEntity/assetOptions' SaveAssetOptions = '/assetEntity/saveAssetoptions' # Adding Get/Set GetBundle = '/ws/moveBundle/list' SaveBundle = '/moveBundle/save' # Adding Get/Set Actions = '/ws/apiAction' # Adding Get/Setup/Validates GetRecipe = '/ws/cookbook/recipe' # Adding Get/Setup/Validates # Release, Clone GetDependency = '/ws/asset/listDependencies' # Adding Get/Setup/Validates } } Function Invoke-ResponseHandling { [CmdletBinding()] param ( # TransitionManager Server Hostname/URL [Parameter(Mandatory = $false)] [String] $Server = $global:TMSessions[$TMSession].TMServer, # TransitionManager Server Sofware Version [Parameter(Mandatory = $false)] [String] $TMVersion = $global:TMSessions[$TMSession].TMVersion, # Connection Protocol [Parameter(Mandatory = $false)] [String] $Protocol = 'https', # HandlerName Name [Parameter(Mandatory = $true)] [String] $HandlerName ) return Invoke-Command -ScriptBlock $TMApiResponseHandlers[$TMVersion].($HandlerName) -NoNewScope } function Get-TMEndpointUri { [CmdletBinding()] param ( # TransitionManager Server Hostname/URL [Parameter(Mandatory = $false)] [String] $Server = $global:TMSessions[$TMSession].TMServer, # TransitionManager Server Sofware Version [Parameter(Mandatory = $false)] [String] $TMVersion = $global:TMSessions[$TMSession].TMVersion, # Connection Protocol [Parameter(Mandatory = $false)] [String] $Protocol = 'https', # Endpoint Name [Parameter(Mandatory = $true)] [String] $EndpointName ) begin { if (-not $TMVersion) { $TMVersion = Get-TMVersion -Server $Server if (-not $TMVersion) { Write-Host "Unable to proceed determine server version." break } } } process { try { ## Start with the Protocol/Schema $uri = switch ($Protocol) { 'http' { 'http://' } 'https' { 'https://' } Default { Write-Host 'unknown protocol': $Protocol ThrowError "Unknown Protocol: $Protocol" break } } # Add the Server Hostname $instance = $Server.Replace('/tdstm', '') $instance = $instance.Replace('https://', '') $ServerHost = $instance.Replace('http://', '') $uri += $ServerHost + '/tdstm' # Add the Module Path $uri += $TMApiEndpoints[$TMVersion].($EndpointName) return $uri } catch { Write-Host "Unable to construct endpoint for Version:$TMVersion, Endpoint:$EndpointName" return $false } } end { } } |