functions/New-FMObjDynamicAddressMapping.ps1
function New-FMObjDynamicAddressMapping { <# .SYNOPSIS Creates a new DynamicMapping object with the given attributes for Address-Objects. .DESCRIPTION Creates a new DynamicMapping object with the given attributes. The result can be used for DynamicMapping parameters Each parameter corresponds to an address attribute with the exception of IpRange. This will be split into the attributes StartIp and EndIp .PARAMETER ImageBase64 Parameter description .PARAMETER Scope Parameter description .PARAMETER AllowRouting Parameter description .PARAMETER AssociatedInterface Parameter description .PARAMETER CacheTtl Parameter description .PARAMETER ClearpassSpt Parameter description .PARAMETER Color Parameter description .PARAMETER Comment Parameter description .PARAMETER Country Parameter description .PARAMETER Dirty Parameter description .PARAMETER EndIp Parameter description .PARAMETER EndMac Parameter description .PARAMETER EpgName Parameter description .PARAMETER FabricObject Parameter description .PARAMETER Filter Parameter description .PARAMETER Fqdn Parameter description .PARAMETER FssoGroup Parameter description .PARAMETER GlobalObject Parameter description .PARAMETER Interface Parameter description .PARAMETER IpRange Parameter description .PARAMETER Macaddr Parameter description .PARAMETER NodeIpOnly Parameter description .PARAMETER ObjId Parameter description .PARAMETER ObjTag Parameter description .PARAMETER ObjType Parameter description .PARAMETER Organization Parameter description .PARAMETER PatternEnd Parameter description .PARAMETER PatternStart Parameter description .PARAMETER PolicyGroup Parameter description .PARAMETER Sdn Parameter description .PARAMETER SdnAddrType Parameter description .PARAMETER SdnTag Parameter description .PARAMETER StartIp Parameter description .PARAMETER StartMac Parameter description .PARAMETER SubType Parameter description .PARAMETER Subnet Parameter description .PARAMETER SubnetName Parameter description .PARAMETER TagDetectionLevel Parameter description .PARAMETER TagType Parameter description .PARAMETER Tags Parameter description .PARAMETER Tenant Parameter description .PARAMETER Type Parameter description .PARAMETER Url Parameter description .PARAMETER Uuid Parameter description .PARAMETER Visibility Parameter description .PARAMETER Wildcard Parameter description .PARAMETER WildcardFqdn Parameter description .PARAMETER NullHandler Parameter description .EXAMPLE An example .NOTES General notes #> [CmdletBinding()] param ( [parameter(mandatory = $false, ParameterSetName = "default")] [string]$ImageBase64, [parameter(mandatory = $false, ParameterSetName = "default")] [System.Object[]]$Scope, [parameter(mandatory = $false, ParameterSetName = "default")] [ValidateSet("disable", "enable")] [string]$AllowRouting, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$AssociatedInterface, [parameter(mandatory = $false, ParameterSetName = "default")] [long]$CacheTtl = -1, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$ClearpassSpt, [parameter(mandatory = $false, ParameterSetName = "default")] [long]$Color = -1, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Comment, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Country, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Dirty, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$EndIp, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$EndMac, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$EpgName, [parameter(mandatory = $false, ParameterSetName = "default")] [ValidateSet("disable", "enable")] [string]$FabricObject, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Filter, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Fqdn, [parameter(mandatory = $false, ParameterSetName = "default")] [System.Object[]]$FssoGroup, [parameter(mandatory = $false, ParameterSetName = "default")] [long]$GlobalObject = -1, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Interface, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$IpRange, [parameter(mandatory = $false, ParameterSetName = "default")] [System.Object[]]$Macaddr, [parameter(mandatory = $false, ParameterSetName = "default")] [ValidateSet("disable", "enable")] [string]$NodeIpOnly, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$ObjId, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$ObjTag, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$ObjType, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Organization, [parameter(mandatory = $false, ParameterSetName = "default")] [long]$PatternEnd = -1, [parameter(mandatory = $false, ParameterSetName = "default")] [long]$PatternStart = -1, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$PolicyGroup, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Sdn, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$SdnAddrType, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$SdnTag, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$StartIp, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$StartMac, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$SubType, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Subnet, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$SubnetName, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$TagDetectionLevel, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$TagType, [parameter(mandatory = $false, ParameterSetName = "default")] [System.Object[]]$Tags, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Tenant, [parameter(mandatory = $true, ParameterSetName = "default")] [string]$Type, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Url, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Uuid, [parameter(mandatory = $false, ParameterSetName = "default")] [ValidateSet("disable", "enable")] [string]$Visibility, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$Wildcard, [parameter(mandatory = $false, ParameterSetName = "default")] [string]$WildcardFqdn, [ValidateSet("Keep", "RemoveAttribute", "ClearContent")] [parameter(mandatory = $false, ValueFromPipeline = $false, ParameterSetName = "default")] $NullHandler = "RemoveAttribute" ) if ($IpRange) { $singleIps = ConvertTo-FMStartEndIp -IpRange $IpRange $StartIp = $singleIps[0] $EndIp = $singleIps[1] }elseif ($Subnet) { $Subnet = Test-FMSubnetCidr -Subnet $Subnet } $data = @{ '_image-base64' = "$ImageBase64" '_scope' = @($Scope) 'allow-routing' = "$AllowRouting" 'associated-interface' = "$AssociatedInterface" 'cache-ttl' = $CacheTtl 'clearpass-spt' = "$ClearpassSpt" 'color' = $Color 'comment' = "$Comment" 'country' = "$Country" 'dirty' = "$Dirty" 'end-ip' = "$EndIp" 'end-mac' = "$EndMac" 'epg-name' = "$EpgName" 'fabric-object' = "$FabricObject" 'filter' = "$Filter" 'fqdn' = "$Fqdn" 'fsso-group' = @($FssoGroup) 'global-object' = $GlobalObject 'interface' = "$Interface" 'macaddr' = @($Macaddr) 'node-ip-only' = "$NodeIpOnly" 'obj-id' = "$ObjId" 'obj-tag' = "$ObjTag" 'obj-type' = "$ObjType" 'organization' = "$Organization" 'pattern-end' = $PatternEnd 'pattern-start' = $PatternStart 'policy-group' = "$PolicyGroup" 'sdn' = "$Sdn" 'sdn-addr-type' = "$SdnAddrType" 'sdn-tag' = "$SdnTag" 'start-ip' = "$StartIp" 'start-mac' = "$StartMac" 'sub-type' = "$SubType" 'subnet' = "$Subnet" 'subnet-name' = "$SubnetName" 'tag-detection-level' = "$TagDetectionLevel" 'tag-type' = "$TagType" 'tags' = @($Tags) 'tenant' = "$Tenant" 'type' = "$Type" 'url' = "$Url" 'uuid' = "$Uuid" 'visibility' = "$Visibility" 'wildcard' = "$Wildcard" 'wildcard-fqdn' = "$WildcardFqdn" } return $data | Remove-FMNullValuesFromHashtable -NullHandler $NullHandler } |