Public/Assets/Object/New-AtlassianCloudAssetsObject.ps1
function New-AtlassianCloudAssetsObject{ [CmdletBinding()] param( [Parameter(Mandatory, Position=0)] [ValidateNotNullOrEmpty()] [psobject]$Schema, [Parameter(Mandatory = $false, Position=1)] [string]$ObjectTypeName, [Parameter(Mandatory = $false, Position=2)] [psobject]$ObjectType, [Parameter(Mandatory, Position=3)] [ValidateNotNullOrEmpty()] [psobject]$Attributes, [Parameter(Mandatory, Position=4)] [ValidateNotNullOrEmpty()] [string]$WorkspaceId, [Parameter(Mandatory, Position=5)] [ValidateNotNullOrEmpty()] [string]$Pat ) $headers = @{ Authorization = "Basic $($Pat)" } $assetsEndpoint = "https://api.atlassian.com/jsm/assets/workspace/$WorkspaceId/v1/" if ($ObjectTypeName -and !$ObjectType) { $objectTypes = Get-AtlassianCloudAssetsObjectType -Schema $Schema -Attributes -WorkspaceId $WorkspaceId -Pat $Pat $objectType = $objectTypes | Where-Object {$_.name -eq $ObjectTypeName} } $apiObject = Convert-AtlassianCloudAssetsPsObjectToApiObject -Schema $Schema -Attributes $Attributes -ObjectType $objectType -WorkspaceId $WorkspaceId -Pat $Pat $body = $apiObject | ConvertTo-Json -Depth 10 $uri = ($assetsEndpoint + "object/create") Write-Host $uri Write-Host $body $newObject = Invoke-RestMethod -Method Post -Body $body -Uri $uri -ContentType application/json -Headers $headers $psObject = Get-AtlassianCloudAssetsObject -Schema $Schema -AQL "objectId = $($newObject.id)" -ObjectTypes @($objectType) -IncludeAttributes -WorkspaceId $WorkspaceId -Pat $Pat return $psObject } |