diff --git a/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 b/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 new file mode 100644 index 0000000..b7e13a4 --- /dev/null +++ b/Functions/DCIM/Sites/Get-NetboxDCIMSite.ps1 @@ -0,0 +1,108 @@ +<# + .NOTES + =========================================================================== + Created with: SAPIEN Technologies, Inc., PowerShell Studio 2020 v5.7.181 + Created on: 2020-10-02 15:52 + Created by: Claussen + Organization: NEOnet + Filename: Get-NetboxDCIMSite.ps1 + =========================================================================== + .DESCRIPTION + A description of the file. +#> + + + +function Get-NetboxDCIMSite { + [CmdletBinding()] + [OutputType([pscustomobject])] + param + ( + [Parameter(ParameterSetName = 'ByID', ValueFromPipelineByPropertyName = $true)] + [uint32]$Id, + + [Parameter(ParameterSetName = 'Query')] + [string]$Name, + + [Parameter(ParameterSetName = 'Query')] + [string]$Query, + + [Parameter(ParameterSetName = 'Query')] + [string]$Slug, + + [Parameter(ParameterSetName = 'Query')] + [string]$Facility, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$ASN, + + [Parameter(ParameterSetName = 'Query')] + [decimal]$Latitude, + + [Parameter(ParameterSetName = 'Query')] + [decimal]$Longitude, + + [Parameter(ParameterSetName = 'Query')] + [string]$Contact_Name, + + [Parameter(ParameterSetName = 'Query')] + [string]$Contact_Phone, + + [Parameter(ParameterSetName = 'Query')] + [string]$Contact_Email, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$Tenant_Group_ID, + + [Parameter(ParameterSetName = 'Query')] + [string]$Tenant_Group, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$Tenant_ID, + + [Parameter(ParameterSetName = 'Query')] + [string]$Tenant, + + [Parameter(ParameterSetName = 'Query')] + [string]$Status, + + [Parameter(ParameterSetName = 'Query')] + [uint32]$Region_ID, + + [Parameter(ParameterSetName = 'Query')] + [string]$Region, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Limit, + + [Parameter(ParameterSetName = 'Query')] + [uint16]$Offset, + + [switch]$Raw + ) + + switch ($PSCmdlet.ParameterSetName) { + 'ById' { + foreach ($Site_ID in $ID) { + $Segments = [System.Collections.ArrayList]::new(@('dcim', 'sites', $Site_Id)) + + $URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters -SkipParameterByName "Id" + + $URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $URI -Raw:$Raw + } + } + + default { + $Segments = [System.Collections.ArrayList]::new(@('dcim', 'sites')) + + $URIComponents = BuildURIComponents -URISegments $Segments.Clone() -ParametersDictionary $PSBoundParameters + + $URI = BuildNewURI -Segments $URIComponents.Segments -Parameters $URIComponents.Parameters + + InvokeNetboxRequest -URI $URI -Raw:$Raw + } + } +} +