Private/Get-AtwsFieldInfo.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
<#
.COPYRIGHT Copyright (c) Office Center Hønefoss AS. All rights reserved. Licensed under the MIT license. See https://github.com/officecenter/OCH-Public/blob/master/LICENSE for license information. #> Function Get-AtwsFieldInfo { <# .SYNOPSIS This function connects to the Autotask Web Services API. .DESCRIPTION The function takes a credential object and uses it to authenticate and connect to the Autotask Web Services API .INPUTS A PSCredential object. Required. It will prompt for credentials if the object is not provided. .OUTPUTS A webserviceproxy object is created. .EXAMPLE Connect-AutotaskWebAPI Prompts for a username and password and authenticates to Autotask .EXAMPLE Connect-AutotaskWebAPI .NOTES NAME: Connect-AutotaskWebAPI .LINK Get-AtwsData New-AtwsQuery #> [cmdletbinding( SupportsShouldProcess = $True, ConfirmImpact = 'Low' )] Param ( [Parameter( Mandatory = $True, Position = 0 )] [String] $Entity, [String] $Connection = 'Atws' ) Begin { Write-Verbose ('{0}: Begin of function' -F $MyInvocation.MyCommand.Name) If (-not($global:AtwsConnection[$Connection].Url)) { Throw [ApplicationException] 'Not connected to Autotask WebAPI. Run Connect-AutotaskWebAPI first.' } Else { $Atws = $global:AtwsConnection[$Connection] } } Process { $Caption = 'Set-Atws{0}' -F $Entity[0].GetType().Name $VerboseDescrition = '{0}: About to modify {1} {2}(s). This action cannot be undone.' -F $Caption, $Entity.Count, $Entity[0].GetType().name $VerboseWarning = '{0}: About to modify {1} {2}(s). This action cannot be undone. Do you want to continue?' -F $Caption, $Entity.Count, $Entity[0].GetType().Name If ($PSCmdlet.ShouldProcess($VerboseDescrition, $VerboseWarning, $Caption)) { $Result = $atws.GetFieldInfo($Entity) } If ($Result.Errors.Count -gt 0) { Foreach ($AtwsError in $Result.Errors) { Write-Error $AtwsError.Message } Return } } End { Write-Verbose ('{0}: End of function' -F $MyInvocation.MyCommand.Name) Return $Result } } |