Skip to main content

Address Objects

Address objects identify network addresses in security policies, NAT rules, and other configurations. The scm CLI provides commands to create, update, delete, and load address objects.

Overview

The address commands allow you to:

  • Create and update address objects with various address types
  • Delete address objects that are no longer needed
  • Bulk import address objects from YAML files
  • Export address objects for backup or migration

Address Types

The CLI supports four types of address objects:

TypeFormatExample
IP NetmaskIP address with CIDR notation192.168.1.0/24
IP RangeRange of IP addresses192.168.1.1-192.168.1.10
IP WildcardIP with wildcard mask10.20.1.0/0.0.248.255
FQDNFully qualified domain nameexample.com
note

You can only specify one address type per address object.

Set Address

Create or update an address object.

Syntax

scm set object address NAME [OPTIONS]

Arguments

ArgumentDescriptionRequired
NAMEName of the address objectYes

Options

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--description TEXTDescription for the addressNo
--tags TEXTTag to apply (repeat for multiple)No
--ip-netmask TEXTAddress in CIDR notationNo**
--ip-range TEXTAddress rangeNo**
--ip-wildcard TEXTAddress with wildcard maskNo**
--fqdn TEXTFully qualified domain nameNo**

* Exactly one of --folder, --snippet, or --device is required.

** You must specify exactly one of the address type options.

Examples

Create an IP Netmask Address

$ scm set object address webserver \
--folder Texas \
--ip-netmask 192.168.1.100/32 \
--description "Web server" \
--tags server --tags web
---> 100%
Created address: webserver in folder Texas

Create an FQDN Address

$ scm set object address company-website \
--folder Texas \
--fqdn example.com \
--description "Company website"
---> 100%
Created address: company-website in folder Texas

Create an IP Range Address

$ scm set object address dhcp-pool \
--folder Texas \
--ip-range 192.168.1.100-192.168.1.200 \
--description "DHCP address pool"
---> 100%
Created address: dhcp-pool in folder Texas

Delete Address

Delete an address object from SCM.

Syntax

scm delete object address NAME [OPTIONS]

Arguments

ArgumentDescriptionRequired
NAMEName of the address object to deleteYes

Options

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--forceSkip confirmation promptNo

* Exactly one of --folder, --snippet, or --device is required.

Example

$ scm delete object address webserver --folder Texas --force
---> 100%
Deleted address: webserver from folder Texas

Load Addresses

Load multiple address objects from a YAML file.

Syntax

scm load object address [OPTIONS]

Options

OptionDescriptionRequired
--file TEXTPath to YAML file containing address definitionsYes
--folder TEXTOverride folder location for all objectsNo
--snippet TEXTOverride snippet location for all objectsNo
--device TEXTOverride device location for all objectsNo
--dry-runPreview changes without applying themNo

YAML File Format

---
addresses:
- name: web-server-1
folder: Texas
description: "Web Server 1"
ip_netmask: 192.168.1.10/32
tags:
- web
- production

- name: web-server-2
folder: Texas
description: "Web Server 2"
ip_netmask: 192.168.1.11/32
tags:
- web
- production

- name: company-website
folder: Texas
description: "Company Website"
fqdn: example.com
tags:
- web
- external

Examples

Load with Original Locations

$ scm load object address --file addresses.yml
---> 100%
✓ Loaded address: web-server-1
✓ Loaded address: web-server-2
✓ Loaded address: company-website

Successfully loaded 3 out of 3 addresses from 'addresses.yml'

Load with Folder Override

$ scm load object address --file addresses.yml --folder Austin
---> 100%
✓ Loaded address: web-server-1
✓ Loaded address: web-server-2
✓ Loaded address: company-website

Successfully loaded 3 out of 3 addresses from 'addresses.yml'
note

When using container override options (--folder, --snippet, --device), all addresses will be loaded into the specified container, ignoring the container specified in the YAML file.

Show Address

Display address objects.

Syntax

scm show object address [NAME] [OPTIONS]

Arguments

ArgumentDescriptionRequired
NAMEName of the address object to show; omit to list allNo

Options

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--max-results INTEGERMaximum number of results to displayNo
--output [table|json|yaml]Output format (default: table)No

* Exactly one of --folder, --snippet, or --device is required.

note

When no NAME argument is provided, all items are listed by default.

Examples

Show Specific Address

$ scm show object address webserver --folder Texas
---> 100%
Address: webserver
Location: Folder 'Texas'
Description: Web server
Type: IP/Netmask
Value: 192.168.1.100/32
Tags: server, web
ID: 123e4567-e89b-12d3-a456-426614174000

List All Addresses (Default Behavior)

$ scm show object address --folder Texas
---> 100%
Addresses in folder 'Texas':
------------------------------------------------------------
Name: webserver
Location: Folder 'Texas'
Description: Web server
Type: IP/Netmask
Value: 192.168.1.100/32
Tags: server, web
------------------------------------------------------------
Name: company-website
Location: Folder 'Texas'
Description: Company website
Type: FQDN
Value: example.com
Tags: web, external
------------------------------------------------------------
Name: dhcp-pool
Location: Folder 'Texas'
Description: DHCP address pool
Type: IP Range
Value: 192.168.1.100-192.168.1.200
------------------------------------------------------------

Backup Addresses

Backup all address objects from a specified location to a YAML file.

Syntax

scm backup object address [OPTIONS]

Options

OptionDescriptionRequired
--folder TEXTFolder to backup addresses fromNo*
--snippet TEXTSnippet to backup addresses fromNo*
--device TEXTDevice to backup addresses fromNo*
--file TEXTOutput filename (defaults to auto-generated)No

* One of --folder, --snippet, or --device is required.

Examples

Backup from Folder

$ scm backup object address --folder Texas
---> 100%
Successfully backed up 15 addresses to address_folder_texas_20240115_120530.yaml

Backup with Custom Filename

$ scm backup object address --folder Texas --file texas-addresses.yaml
---> 100%
Successfully backed up 15 addresses to texas-addresses.yaml

Best Practices

  1. Use Descriptive Names: Choose clear, descriptive names for address objects that indicate their purpose.
  2. Add Descriptions: Always include a description to document the purpose of each address.
  3. Apply Tags: Use tags to categorize addresses for easier management and policy creation.
  4. Use YAML for Bulk Operations: For large deployments, use YAML files to manage address objects.
  5. Validate First: Use the --dry-run option to preview changes before applying them.
  6. Organize by Folder: Keep address objects organized in logical folders.