Resources/Sites.ps1
function New-ACITGlueSite { <# .SYNOPSIS Sync Sites from Aruba Central to ITGlue locations .DESCRIPTION Sync Sites from Aruba Central to ITGlue locations .EXAMPLE New-ACITGlueSites -OrgId 1111111 .EXAMPLE New-ACITGlueSites #> Param( [Parameter(Mandatory = $false)] [String]$OrgId ) begin { $ACEndpoint = "/central/v2/sites" $ACSites = (Invoke-ArubaCLRestMethod -uri $ACendpoint -limit 100).sites $ReturnArray = @() $ReturnData = [PSCustomObject]@{} if (!$OrgId) { $OrgId = $ACITGlueOrgId } $SiteCount= $ACSites.count $i = 0 } process { # Check for valid Organization if (!(Get-ITGlueLocations -org_id $OrgId -ErrorAction SilentlyContinue) -as [bool]) { Write-Error "Invalid organization." break } foreach ($Site in $ACSites) { Write-Progress -Activity "Processing Site ($($Site.site_name))" -Status "$($i) of $($SiteCount)" -PercentComplete (($i / $SiteCount) * 100) $ITGlue_Location = (Get-ITGlueLocations -org_id $OrgId).data.attributes | Where-Object { $_.name -eq $Site.site_name } if (!$ITGlue_Location) { $data = @{ "organization_id" = $OrgId "type" = "locations" attributes = @{ "organization_id" = $OrgId "name" = $Site.site_name "address_1" = $Site.address "adress_2" = $null "city" = $Site.city "region_name" = $Site.state "region_id" = 63 "postal_code" = $Site.zipcode "country_id" = 2 # Assumes US "latitude" = $Site.latitude "longitude" = $Site.longitude } } New-ITGlueLocations -org_id $OrgId -data $data | Out-Null $Properties = @{ "OrgId" = $OrgId "Name" = $Site.site_name "Status" = $true } $ReturnData = New-Object -TypeName PSObject -Property $Properties $ReturnArray += $ReturnData } else { $Properties = @{ "OrgId" = $OrgId "Name" = $Site.site_name "Status" = $false } $ReturnData = New-Object -TypeName PSObject -Property $Properties $ReturnArray += $ReturnData } $i++ } } end { return $ReturnArray } } |