Public/Assets/ObjectTypeAttribute/Set-AtlassianCloudAssetsObjectTypeAttribute.ps1
function Set-AtlassianCloudAssetsObjectTypeAttribute{ [CmdletBinding()] param( [Parameter(Mandatory, Position=0)] [ValidateNotNullOrEmpty()] [string]$ObjectTypeId, [Parameter(Mandatory, Position=1)] [ValidateNotNullOrEmpty()] [string]$AttributeId, [Parameter(Mandatory = $false, Position=2)] [string]$Name, [Parameter(Mandatory = $false, Position=3)] [string]$Description, [Parameter(Mandatory = $false, Position=4)] [ValidateSet('Default','ObjectReference','User','Group','Status')] [string]$Type, [Parameter(Mandatory = $false, Position=5)] [ValidateSet('None','Text','Integer','Boolean','Double','Date','Time','DateTime','Url','Email','Textarea','Select','IP Address')] [string]$DefaultType = 'None', [Parameter(Mandatory = $false, Position=6)] [string]$ObjectTypeValue, [Parameter(Mandatory = $false, Position=7)] [string[]]$UserTypeGroupsFilter, [Parameter(Mandatory = $false, Position=8)] [string]$AdditionalValue, [Parameter(Mandatory = $false, Position=9)] [int]$MinimumCardinality, [Parameter(Mandatory = $false, Position=10)] [int]$MaximumCardinality, [Parameter(Mandatory = $false, Position=11)] [string]$Suffix, [Parameter(Mandatory = $false, Position=12)] [bool]$IncludeChildObjectTypes, [Parameter(Mandatory = $false, Position=13)] [bool]$Hidden, [Parameter(Mandatory = $false, Position=14)] [bool]$Unique, [Parameter(Mandatory = $false, Position=15)] [bool]$Summable, [Parameter(Mandatory = $false, Position=16)] [string]$RegexValidation, [Parameter(Mandatory = $false, Position=17)] [string]$QlQuery, [Parameter(Mandatory = $false, Position=18)] [string]$Options, [Parameter(Mandatory, Position=19)] [ValidateNotNullOrEmpty()] [string]$WorkspaceId, [Parameter(Mandatory, Position=20)] [ValidateNotNullOrEmpty()] [string]$Pat ) $data = @{} if ($Name) { $data += @{ name = $Name } } if ($Description) { $data += @{ description = $Description } } if ($Type) { $data += @{ type = $( switch ($type) { 'Default' { 0 } 'ObjectReference' { 1 } 'User' { 2 } 'Group' { 4 } 'Status' { 7 } } ) } } if ($type -eq 'Default') { $data += @{ defaultTypeId = $( switch ($DefaultType) { 'None' { -1 } 'Text' { 0 } 'Integer' { 1 } 'Boolean' { 2 } 'Double' { 3 } 'Date' { 4 } 'Time' { 5 } 'DateTime' { 6 } 'Url' { 7 } 'Email' { 8 } 'Textarea' { 9 } 'Select' { 10 } 'IP Address' { 11 } } ) } } if ($ObjectTypeValue) { $data += @{ typeValue = $ObjectTypeValue } } if ($UserTypeGroupsFilter) { $data += @{ typeValueMulti = $UserTypeGroupsFilter } } if ($AdditionalValue) { $data += @{ additionalValue = $AdditionalValue } } if ($MinimumCardinality) { $data += @{ minimumCardinality = $MinimumCardinality } } if ($MaximumCardinality) { $data += @{ maximumCardinality = $MaximumCardinality } } if ($Suffix) { $data += @{ suffix = $Suffix } } if ($IncludeChildObjectTypes) { $data += @{ includeChildObjectTypes = $IncludeChildObjectTypes } } if ($Hidden) { $data += @{ hidden = $Hidden } } if ($Unique) { $data += @{ uniqueAttribute = $Unique } } if ($Summable) { $data += @{ summable = $Summable } } if ($RegexValidation) { $data += @{ regexValidation = $RegexValidation } } if ($QlQuery) { $data += @{ qlQuery = $QlQuery } } if ($Options) { $data += @{ options = $Options } } Write-Host "$($data | ConvertTo-Json)" Invoke-AtlassianCloudAssetsMethod -Method Put -Data $data -Endpoint "objecttypeattribute/$ObjectTypeId/$AttributeId" -WorkspaceId $workspaceId -Pat $Pat -Verbose:($Verbose.IsPresent) } |