Skip to content

Region Example

This example demonstrates how to create a dynamic attribute to assign a Region.

Region Configuration
---
ipfabric:
  base_url: null  # Base URL or ENV: IPF_URL
  auth: null  #API Token or ENV: IPF_TOKEN or (IPF_USERNAME and IPF_PASSWORD)
  timeout: 5
  verify: true
  snapshot_id: $last
dry_run: false  # Default true
overwrite: true  # Default false
update_snapshot: true  # Default true

default:  # Applies to all rules except inventory unless overridden or flagged not to merge
  attribute: REGION
  filters:  # Disable by setting merge_default_filters to false in rules
    - column: vendor
      value: aws|azure|gcp
      operator: nreg

inventory:
  report_columns: # Optional Inventory Columns to be included in the report with hostname, siteName, and sn
    - loginIp

rules:
  - name: Convert SiteName to Region
    filters:
      - column: siteName
        value: unknown
        operator: neq
      - column: siteName
        value: HWLAB
        operator: neq
    value:
      api_endpoint: tables/inventory/devices
      column: siteName
      transform: upper
      regex:
        pattern: ^(\w\w)-  # Example: us-
        group: 1
      mapping:
        US: NAMR
        NS: NAMR
        UK: EMEA

  - name: HWLAB
    filters:
      - column: siteName
        value: HWLAB
        operator: eq
    value:
      api_endpoint: tables/inventory/devices
      static: EMEA

  - name: Catch-all
    # Any devices found in the query and not already assigned the REGION Attribute will be assigned this value
    # Because of default filter settings, this will not be applied to devices that are not in the AWS, GCP, or Azure inventory tables
    merge_default_filters: true  # default
    value:
      api_endpoint: tables/inventory/devices
      static: UNKNOWN

  - name: Assign Cloud Region
    merge_default_filters: false
    attribute: CLOUD_REGION
    value:
      api_endpoint: tables/cloud/nodes/inventory
      column: location
      null_value: GLOBAL

  - name: AWS
    merge_default_filters: false
    value:
      api_endpoint: tables/cloud/vendors/aws/inventory
      column: region
      transform: upper
      regex:
        pattern: ^(\w\w)-
        group: 1
      null_value: CLOUD
      mapping:
        US: NAMR
        CA: NAMR
        AF: EMEA
        EU: EMEA
        AP: APAC
        IL: EMEA
        MX: LATAM
        SA: LATAM

  - name: GCP
    merge_default_filters: false
    value:
      api_endpoint: tables/cloud/vendors/gcp/inventory
      column: region
      regex:
        pattern: '^([^-]*)-'
        group: 1
      null_value: CLOUD
      mapping:
        africa: EMEA
        asia: APAC
        australia: APAC
        europe: EMEA
        me: EMEA
        northamerica: NAMR
        southamerica: LATAM
        us: NAMR

  - name: Azure
    merge_default_filters: false
    value:
      api_endpoint: tables/cloud/vendors/azure/inventory
      column: location
      null_value: CLOUD
      mapping:
        southafricanorth: EMEA
        southafricawest: EMEA
        australiacentral: APAC
        australiacentral2: APAC
        australiaeast: APAC
        australiasoutheast: APAC
        centralindia: APAC
        eastasia: APAC
        eastasiastage: APAC
        indonesiacentral: APAC
        japaneast: APAC
        japanwest: APAC
        jioindiacentral: APAC
        jioindiawest: APAC
        koreacentral: APAC
        koreasouth: APAC
        malaysiawest: APAC
        newzealandnorth: APAC
        southindia: APAC
        southeastasia: APAC
        southeastasiastage: APAC
        westindia: APAC
        canadacentral: NAMR
        canadaeast: NAMR
        francecentral: EMEA
        francesouth: EMEA
        germanynorth: EMEA
        germanywestcentral: EMEA
        italynorth: EMEA
        northeurope: EMEA
        norwayeast: EMEA
        norwaywest: EMEA
        polandcentral: EMEA
        spaincentral: EMEA
        swedencentral: EMEA
        switzerlandnorth: EMEA
        switzerlandwest: EMEA
        uksouth: EMEA
        ukwest: EMEA
        westeurope: EMEA
        mexicocentral: LATAM
        israelcentral: EMEA
        qatarcentral: EMEA
        uaecentral: EMEA
        uaenorth: EMEA
        brazilsouth: LATAM
        brazilsoutheast: LATAM
        brazilus: LATAM
        chilecentral: LATAM
        centralus: NAMR
        centralusstage: NAMR
        centraluseuap: NAMR
        eastus: NAMR
        eastusstage: NAMR
        eastus2: NAMR
        eastus2stage: NAMR
        eastus2euap: NAMR
        eastusstg: NAMR
        northcentralus: NAMR
        northcentralusstage: NAMR
        southcentralus: NAMR
        southcentralusstage: NAMR
        southcentralusstg: NAMR
        westcentralus: NAMR
        westus: NAMR
        westusstage: NAMR
        westus2: NAMR
        westus2stage: NAMR
        westus3: NAMR
        asia: APAC
        asiapacific: APAC
        australia: APAC
        brazil: LATAM
        canada: NAMR
        europe: EMEA
        france: EMEA
        germany: EMEA
        india: APAC
        indonesia: APAC
        israel: EMEA
        italy: EMEA
        japan: APAC
        korea: APAC
        malaysia: APAC
        mexico: LATAM
        newzealand: APAC
        norway: EMEA
        poland: EMEA
        qatar: EMEA
        singapore: APAC
        southafrica: EMEA
        spain: EMEA
        sweden: EMEA
        switzerland: EMEA
        taiwan: APAC
        uae: EMEA
        uk: EMEA
        unitedstates: NAMR
        unitedstateseuap: NAMR

Merged Configuration

The above configuration will be merged into the following effective configuration:

Region Merged Configuration
---
ipfabric:
  base_url: null
  auth: null
  timeout: 5
  verify: true
  snapshot_id: $last
dry_run: false
overwrite: true
update_snapshot: true
inventory:
  filters: []
  filter_string: null
  attribute_filters: []
  report_columns:
    - loginIp
rules:
  - filters:
      - value: unknown
        operator: neq
        column: siteName
      - value: HWLAB
        operator: neq
        column: siteName
      - value: aws|azure|gcp
        operator: nreg
        column: vendor
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: null
      regex:
        pattern: ^(\w\w)-
        group: 1
        flags: []
      transform: upper
      mapping:
        US: NAMR
        NS: NAMR
        UK: EMEA
      null_value: null
      api_endpoint: tables/inventory/devices
      column: siteName
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: Convert SiteName to Region
    merge_default_filters: true
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters:
      - value: HWLAB
        operator: eq
        column: siteName
      - value: aws|azure|gcp
        operator: nreg
        column: vendor
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: EMEA
      regex: null
      transform: null
      mapping: {}
      null_value: null
      api_endpoint: tables/inventory/devices
      column: null
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: HWLAB
    merge_default_filters: true
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters:
      - value: aws|azure|gcp
        operator: nreg
        column: vendor
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: UNKNOWN
      regex: null
      transform: null
      mapping: {}
      null_value: null
      api_endpoint: tables/inventory/devices
      column: null
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: Catch-all
    merge_default_filters: true
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters: []
    filter_string: null
    attribute_filters: []
    attribute: CLOUD_REGION
    value:
      static: null
      regex: null
      transform: null
      mapping: {}
      null_value: GLOBAL
      api_endpoint: tables/cloud/nodes/inventory
      column: location
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: Assign Cloud Region
    merge_default_filters: false
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters: []
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: null
      regex:
        pattern: ^(\w\w)-
        group: 1
        flags: []
      transform: upper
      mapping:
        US: NAMR
        CA: NAMR
        AF: EMEA
        EU: EMEA
        AP: APAC
        IL: EMEA
        MX: LATAM
        SA: LATAM
      null_value: CLOUD
      api_endpoint: tables/cloud/vendors/aws/inventory
      column: region
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: AWS
    merge_default_filters: false
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters: []
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: null
      regex:
        pattern: '^([^-]*)-'
        group: 1
        flags: []
      transform: null
      mapping:
        africa: EMEA
        asia: APAC
        australia: APAC
        europe: EMEA
        me: EMEA
        northamerica: NAMR
        southamerica: LATAM
        us: NAMR
      null_value: CLOUD
      api_endpoint: tables/cloud/vendors/gcp/inventory
      column: region
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: GCP
    merge_default_filters: false
    merge_default_device_filters: true
    merge_default_attribute_filters: true
  - filters: []
    filter_string: null
    attribute_filters: []
    attribute: REGION
    value:
      static: null
      regex: null
      transform: null
      mapping:
        southafricanorth: EMEA
        southafricawest: EMEA
        australiacentral: APAC
        australiacentral2: APAC
        australiaeast: APAC
        australiasoutheast: APAC
        centralindia: APAC
        eastasia: APAC
        eastasiastage: APAC
        indonesiacentral: APAC
        japaneast: APAC
        japanwest: APAC
        jioindiacentral: APAC
        jioindiawest: APAC
        koreacentral: APAC
        koreasouth: APAC
        malaysiawest: APAC
        newzealandnorth: APAC
        southindia: APAC
        southeastasia: APAC
        southeastasiastage: APAC
        westindia: APAC
        canadacentral: NAMR
        canadaeast: NAMR
        francecentral: EMEA
        francesouth: EMEA
        germanynorth: EMEA
        germanywestcentral: EMEA
        italynorth: EMEA
        northeurope: EMEA
        norwayeast: EMEA
        norwaywest: EMEA
        polandcentral: EMEA
        spaincentral: EMEA
        swedencentral: EMEA
        switzerlandnorth: EMEA
        switzerlandwest: EMEA
        uksouth: EMEA
        ukwest: EMEA
        westeurope: EMEA
        mexicocentral: LATAM
        israelcentral: EMEA
        qatarcentral: EMEA
        uaecentral: EMEA
        uaenorth: EMEA
        brazilsouth: LATAM
        brazilsoutheast: LATAM
        brazilus: LATAM
        chilecentral: LATAM
        centralus: NAMR
        centralusstage: NAMR
        centraluseuap: NAMR
        eastus: NAMR
        eastusstage: NAMR
        eastus2: NAMR
        eastus2stage: NAMR
        eastus2euap: NAMR
        eastusstg: NAMR
        northcentralus: NAMR
        northcentralusstage: NAMR
        southcentralus: NAMR
        southcentralusstage: NAMR
        southcentralusstg: NAMR
        westcentralus: NAMR
        westus: NAMR
        westusstage: NAMR
        westus2: NAMR
        westus2stage: NAMR
        westus3: NAMR
        asia: APAC
        asiapacific: APAC
        australia: APAC
        brazil: LATAM
        canada: NAMR
        europe: EMEA
        france: EMEA
        germany: EMEA
        india: APAC
        indonesia: APAC
        israel: EMEA
        italy: EMEA
        japan: APAC
        korea: APAC
        malaysia: APAC
        mexico: LATAM
        newzealand: APAC
        norway: EMEA
        poland: EMEA
        qatar: EMEA
        singapore: APAC
        southafrica: EMEA
        spain: EMEA
        sweden: EMEA
        switzerland: EMEA
        taiwan: APAC
        uae: EMEA
        uk: EMEA
        unitedstates: NAMR
        unitedstateseuap: NAMR
      null_value: CLOUD
      api_endpoint: tables/cloud/vendors/azure/inventory
      column: location
      sn_column: sn
      sort: null
    device_filters: []
    delete_attribute: null
    name: Azure
    merge_default_filters: false
    merge_default_device_filters: true
    merge_default_attribute_filters: true