Skip to content

xcsh_registration (Resource)

Manages a Registration resource in F5 Distributed Cloud for vpm creates registration using this message, never used by users. configuration.

~> Note For more information about this resource, please refer to the F5 XC API Documentation.

# Registration Resource Example
# Manages a Registration resource in F5 Distributed Cloud for vpm creates registration using this message, never used by users.
terraform {
required_version = ">= 1.0"
required_providers {
xcsh = {
source = "f5-sales-demo/xcsh"
version = ">= 0.1.0"
}
}
}
# Basic Registration configuration
resource "xcsh_registration" "example" {
name = "example-registration"
namespace = "staging"
token = "example-value"
}

-> Syntax Rule: This provider uses OneOf groups for mutually exclusive options. Fields documented as “Optional Block” use empty block syntax field_name {}, never field_name = true. Boolean attributes (like add_hsts, http_redirect) use = true/false as normal.

🔶 High Risk Operations — Some operations on this resource have high danger level. Destructive operations may require confirmation.

name - Required String
Name of the Registration. Must be unique within the namespace

namespace - Required String
Namespace where the Registration will be created

annotations - Optional Map
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata

description - Optional String
Human readable description for the object

disable - Optional Bool
A value of true will administratively disable the object

labels - Optional Map
Labels is a user defined key value map that can be attached to resources for organization and filtering

infra - Optional Block
InfraMetadata stores information about instance infrastructure
See Infra below for details.

passport - Optional Block
Passport stores information about identification and node configuration provided by CE during registration. It can be manually updated by user during approval
See Passport below for details.

timeouts - Optional Block
See Timeouts below for details.

token - Required String
Token is used for machine and tenant identification

In addition to all arguments above, the following attributes are exported:

id - Optional String
Unique identifier for the resource


An infra block supports the following:

availability_zone - Optional String
Availability Zone is a high-availability offering that protects your applications and data from datacenter failures

bond_config - Optional Block
Bond device configuration for VPM registration
See Bond Config below.

certified_hw - Optional String
Certified HW name used to map with F5XC certified_hardware definition

domain - Optional String
Machine domain. It’s used for Kubernetes cloud provider when domain must be different than F5 Distributed Cloud

hostname - Optional String
Must be unique in entire cluster and same as OS settings. ’.’ (dots) are not allowed in hostname

hw_info - Optional Block
OsInfo holds information about host OS and HW
See Hw Info below.

instance_id - Optional String
Instance ID (assigned by infrastructure provider)

interfaces - Optional Block
Machine interfaces present during registration time

internet_proxy - Optional Block
Proxy describes OPTIONS for HTTP or HTTPS proxy configurations
See internet Proxy below.

is_slo_static - Optional Bool
Is SLO Static. Indicates whether the SLO is static

machine_id - Optional String
Machine ID - generated by operating system

provider_ref - Optional String
Possible values are UNKNOWN, AWS, GOOGLE, AZURE, VMWARE, KVM, OTHER, VOLTERRA, IBMCLOUD, UNKNOWN_K8S, AWS_K8S, GCP_K8S, AZURE_K8S, VMWARE_K8S, KVM_K8S, OTHER_K8S, VOLTERRA_K8S, IBMCLOUD_K8S, F5OS, RSERIES, OCI, NUTANIX, OPENSTACK, EQUINIX, OPENSHIFT_VIRTUALIZATION
[Enum: UNKNOWN|AWS|GOOGLE|AZURE|VMWARE|KVM|OTHER|VOLTERRA|IBMCLOUD|UNKNOWN_K8S|AWS_K8S|GCP_K8S|AZURE_K8S|VMWARE_K8S|KVM_K8S|OTHER_K8S|VOLTERRA_K8S|IBMCLOUD_K8S|F5OS|RSERIES|OCI|NUTANIX|OPENSTACK|EQUINIX|OPENSHIFT_VIRTUALIZATION] Infrastructure provider enum for registration. It describes where is instance running. Provider was not detected AWS cloud instance Google cloud instance Azure cloud instance VMWare VM KVM VM Other provider, which was not identified by system

sw_info - Optional Block
SWInfo holds information about sw version
See Sw Info below.

timestamp - Optional String
It’s used to verify machine have acceptable time difference from server

zone - Optional String
Instance zone (or region), depends on provider

A bond_config block (within infra) supports the following:

interfaces - Optional List
Member Interfaces

mode - Optional String Defaults to BOND_MODE_UNSPECIFIED
Possible values are BOND_MODE_UNSPECIFIED, ACTIVE_BACKUP, LACP_802_3AD
[Enum: BOND_MODE_UNSPECIFIED|ACTIVE_BACKUP|LACP_802_3AD] Bonding mode for bond device configuration Bond mode is not specified Active-backup bond mode (one interface active, others as backup) IEEE 802.3ad Dynamic link aggregation (LACP)

name - Optional String
Bond Name

A hw_info block (within infra) supports the following:

bios - Optional Block
Bios Data. BIOS information
See Bios below.

board - Optional Block
Board Details. Board information
See Board below.

chassis - Optional Block
Chassis Details. Chassis information
See Chassis below.

cpu - Optional Block
CPU Information. CPU information
See CPU below.

gpu - Optional Block
GPU. GPU information on server
See GPU below.

kernel - Optional Block
Kernel. Kernel information
See Kernel below.

memory - Optional Block
Memory Information. Memory information
See Memory below.

network - Optional Block
Network. List of network devices in server
See Network below.

numa_nodes - Optional Number
Non-uniform memory access (NUMA) nodes count

os - Optional Block
OS. Details of Operating System
See OS below.

product - Optional Block
Product Information. Product information
See Product below.

storage - Optional Block
Storage. List of storage devices in server
See Storage below.

usb - Optional Block
USB devices. List of USB devices in server
See Usb below.

A bios block (within infra.hw_info) supports the following:

date - Optional String
Information from /sys/class/dmi/ID/bios_date

vendor - Optional String
Information from /sys/class/dmi/ID/bios_vendor

version - Optional String
Information from /sys/class/dmi/ID/bios_version

A board block (within infra.hw_info) supports the following:

asset_tag - Optional String
Information from /sys/class/dmi/ID/board_asset_tag

name - Optional String
Information from /sys/class/dmi/ID/board_name

serial - Optional String
Information from /sys/class/dmi/ID/board_serial

vendor - Optional String
Information from /sys/class/dmi/ID/board_vendor

version - Optional String
Information from /sys/class/dmi/ID/board_version

A chassis block (within infra.hw_info) supports the following:

asset_tag - Optional String
Information from /sys/class/dmi/ID/chassis_asset_tag

serial - Optional String
Information from /sys/class/dmi/ID/chassis_serial

type - Optional Number
Information from /sys/class/dmi/ID/chassis_type

vendor - Optional String
Information from /sys/class/dmi/ID/chassis_vendor

version - Optional String
Information from /sys/class/dmi/ID/chassis_version

A cpu block (within infra.hw_info) supports the following:

cache - Optional Number
Cache. CPU cache size in KB

cores - Optional Number
Cores. Number of physical CPU cores

cpus - Optional Number
CPUs. Number of physical CPUs

model - Optional String
Model. CPU model

speed - Optional Number
Speed. CPU clock rate in MHz

threads - Optional Number
Threads. Number of logical (HT) CPU cores

vendor - Optional String
Vendor. CPU vendor

A gpu block (within infra.hw_info) supports the following:

cuda_version - Optional String
Cuda Version. GPU Cuda Version

driver_version - Optional String
Driver Version. GPU Driver Version

gpu_device - Optional Block
GPU devices. List of GPU devices in server
See GPU Device below.

A gpu_device block (within infra.hw_info.gpu) supports the following:

id - Optional String
GPU ID. GPU ID

processes - Optional String
Processes. GPU Processes

product_name - Optional String
Product Name. GPU Product Name

A kernel block (within infra.hw_info) supports the following:

architecture - Optional String
Architecture. Kernel architecture

release - Optional String
Release. Kernel release

version - Optional String
Version. Kernel version

A memory block (within infra.hw_info) supports the following:

size_mb - Optional Number
RAM. RAM size in MB

speed - Optional Number
Speed. RAM data rate in MT/s

type - Optional String
Type. Type of memory, eg. DDR4

A network block (within infra.hw_info) supports the following:

driver - Optional String
Driver. Driver of device, eg. E1000e

ip_address - Optional List
IP Address. IP address on interface

link_quality - Optional String Defaults to QUALITY_UNKNOWN
Possible values are QUALITY_UNKNOWN, QUALITY_GOOD, QUALITY_POOR, QUALITY_DISABLED
[Enum: QUALITY_UNKNOWN|QUALITY_GOOD|QUALITY_POOR|QUALITY_DISABLED] Link quality determined by VER using different probes Unknown quality Link quality is good Link quality is poor Quality disabled

link_type - Optional String Defaults to LINK_TYPE_UNKNOWN
Possible values are LINK_TYPE_UNKNOWN, LINK_TYPE_ETHERNET, LINK_TYPE_WIFI_802_11AC, LINK_TYPE_WIFI_802_11BGN, LINK_TYPE_4G, LINK_TYPE_WIFI, LINK_TYPE_WAN
[Enum: LINK_TYPE_UNKNOWN|LINK_TYPE_ETHERNET|LINK_TYPE_WIFI_802_11AC|LINK_TYPE_WIFI_802_11BGN|LINK_TYPE_4G|LINK_TYPE_WIFI|LINK_TYPE_WAN] Link type of interface determined operationally Link type unknown Link type ethernet Wi-Fi link of type 802.11ac Wi-Fi link of type 802.11bgn Link type 4G Wi-Fi link Wan link

mac_address - Optional String
MAC Address. MAC address on interface

name - Optional String
Name. Name of device, eg. Eth0

port - Optional String
Port. Used port, eg. Tp

speed - Optional Number
Speed. Device max supported speed in Mbps

An os block (within infra.hw_info) supports the following:

architecture - Optional String
Architecture. Architecture of OS

name - Optional String
Name. Name of OS

release - Optional String
Release. Release of the OS

vendor - Optional String
Vendor. Vendor of OS

version - Optional String
Version. Version of OS

A product block (within infra.hw_info) supports the following:

name - Optional String
Name. Product name, eg. For AWS m5a.xlarge. Info taken from /sys/class/dmi/ID/product_name

serial - Optional String
Serial number, eg. For AWS ec254b6d-9676-1a51-8b10-21370dbdc3e5. Info taken from /sys/class/dmi/ID/product_serial

vendor - Optional String
Vendor. Vendor name, eg. For AWS Amazon EC2. Info taken from /sys/class/dmi/ID/product_vendor

version - Optional String
Version name. Info taken from /sys/class/dmi/ID/product_version

A storage block (within infra.hw_info) supports the following:

driver - Optional String
Driver. Driver of device

model - Optional String
Model. Model of device

name - Optional String
Name. Name of device, eg. Nvme0n1

serial - Optional String
Serial Number. Serial of device

size_gb - Optional Number
Size(GB). Device size in GB

vendor - Optional String
Vendor. Vendor of device

An usb block (within infra.hw_info) supports the following:

address - Optional Number
Address of the device on the bus in decimal

b_device_class - Optional String
Class. The class of this device

b_device_protocol - Optional String
The protocol (within the subclass) of this device

b_device_sub_class - Optional String
The subclass (within the class) of this device

b_max_packet_size - Optional Number
Max packet size. Maximum size of the control transfer

bcd_device - Optional String
BCD Device. The device version

bcd_usb - Optional String
BCD Spec. USB Specification Release Number

bus - Optional Number
The bus on which the device was detected in decimal

description_spec - Optional String
Description. Device description

i_manufacturer - Optional String
Manufacturer. Manufacturer name

i_product - Optional String
Device product. Product name reported by device

i_serial - Optional String
Index of Serial Number String Descriptor

id_product - Optional String
Product ID (Assigned by Manufacturer) in hex

id_vendor - Optional String
Vendor ID. Vendor ID (Assigned by USB Org) in hex

port - Optional Number
Port on which the device was detected in decimal

product_name - Optional String
Product ID translated to name (if available)

speed - Optional String
The negotiated operating speed for the device

usb_type - Optional String Defaults to UNKNOWN_USB
Possible values are UNKNOWN_USB, INTERNAL, REGISTERED, CONFIGURABLE
[Enum: UNKNOWN_USB|INTERNAL|REGISTERED|CONFIGURABLE] Type of USB device Unknown USB device type Internal USB present in Certified HW USB device present during node registration USB device that can be matched by USB rules

vendor_name - Optional String
Vendor ID translated to name (if available)

An internet_proxy block (within infra) supports the following:

http_proxy - Optional String
It will be used as the proxy URL for HTTP requests and HTTPS requests unless overridden by HTTPSProxy or NoProxy

https_proxy - Optional String
It will be used as the proxy URL for HTTPS requests unless overridden by NoProxy

no_proxy - Optional String
It specifies a string that contains comma-separated values specifying hosts that should be excluded from proxying. Each value is represented by an IP address prefix (192.0.2.1), an IP address prefix in CIDR notation (192.0.2.0/24), a domain name, or a special DNS label (*). An IP address prefix and

proxy_cacert_url - Optional String
Allow optional different trust-store for proxy in HTTP CONNECT step by picking proxy CA certificate value

A sw_info block (within infra) supports the following:

sw_version - Optional String
SW Version. SW Version in the site

A passport block supports the following:

cluster_name - Optional String
Cluster Name

cluster_size - Optional Number
Defines how many master nodes is in the cluster, only 1 or 3 is allowed 1 - cluster have single master, without HA 3 - cluster have 3 masters, with HA, all nodes should be allowed at same time, cluster won’t start until ALL nodes are ADMITTED 0 - same as 1 This value can’t be changed after

cluster_type - Optional String
Cluster Type

default_os_version - Optional Block
Enable this option

default_sw_version - Optional Block
Enable this option

latitude - Optional Number
Geographic location of this site

longitude - Optional Number
Geographic location of this site

operating_system_version - Optional String
Operating System Version is optional parameter, which allows to specify target SW version for particular site e.g. 7.2009.10

private_network_name - Optional String
Private Network name for private access connectivity to F5XC ADN. It is used for PrivateLink, CloudLink and L3VPN

volterra_software_version - Optional String
F5XC Software Version is optional parameter, which allows to specify target SW version for particular site e.g. Crt-20210329-1002

A timeouts block supports the following:

create - Optional String (Defaults to 10 minutes)
Used when creating the resource

delete - Optional String (Defaults to 10 minutes)
Used when deleting the resource

read - Optional String (Defaults to 5 minutes)
Used when retrieving the resource

update - Optional String (Defaults to 10 minutes)
Used when updating the resource


The following type definitions are used throughout this resource. See the full definition here rather than repeated inline.

Object Reference {#common-object-reference}

Section titled “Object Reference {#common-object-reference}”

Object references establish a direct reference from one configuration object to another in F5 Distributed Cloud. References use the format tenant/namespace/name.

FieldTypeDescription
nameStringName of the referenced object
namespaceStringNamespace containing the referenced object
tenantStringTenant of the referenced object (system-managed)

Transformers apply transformations to input values before matching. Multiple transformers can be applied in order.

ValueDescription
LOWER_CASEConvert to lowercase
UPPER_CASEConvert to uppercase
BASE64_DECODEDecodebase64 content
NORMALIZE_PATHNormalize URL path
REMOVE_WHITESPACERemove whitespace characters
URL_DECODEDecode URL-encoded characters
TRIM_LEFTTrim leading whitespace
TRIM_RIGHTTrim trailing whitespace
TRIMTrim both leading and trailing whitespace

HTTP methods used for request matching.

ValueDescription
ANYMatch any HTTP method
GETHTTP GET request
HEADHTTP HEAD request
POSTHTTP POST request
PUTHTTP PUT request
DELETEHTTP DELETE request
CONNECTHTTP CONNECT request
OPTIONSHTTP OPTIONS request
TRACEHTTP TRACE request
PATCHHTTP PATCH request
COPYHTTP COPY request (WebDAV)

TLS Fingerprints {#common-tls-fingerprints}

Section titled “TLS Fingerprints {#common-tls-fingerprints}”

TLS fingerprint categories for malicious client detection.

ValueDescription
TLS_FINGERPRINT_NONENo fingerprint matching
ANY_MALICIOUS_FINGERPRINTMatch any known malicious fingerprint
ADWAREAdware-associated fingerprints
DRIDEXDridex malware fingerprints
GOOTKITGootkit malware fingerprints
RANSOMWARERansomware-associated fingerprints
TRICKBOTTrickbot malware fingerprints

IP Threat Categories {#common-ip-threat-categories}

Section titled “IP Threat Categories {#common-ip-threat-categories}”

IP address threat categories for security filtering.

ValueDescription
SPAM_SOURCESKnown spam sources
WINDOWS_EXPLOITSWindows exploit sources
WEB_ATTACKSWeb attack sources
BOTNETSKnown botnet IPs
SCANNERSNetwork scanner IPs
REPUTATIONPoor reputation IPs
PHISHINGPhishing-related IPs
PROXYAnonymous proxy IPs
MOBILE_THREATSMobile threat sources
TOR_PROXYTor exit nodes
DENIAL_OF_SERVICEDoS attack sources
NETWORKKnown bad network ranges

Import is supported using the following syntax:

Terminal window
# Import using namespace/name format
terraform import xcsh_registration.example system/example