- Home
- Documentation
- API Security
- Resources
- xcsh_api_discovery (Resource)
xcsh_api_discovery (Resource)
Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
~> Note For more information about this resource, please refer to the F5 XC API Documentation.
Example Usage
Section titled “Example Usage”# APIDiscovery Resource Example# Manages API discovery creates a new object in the storage backend for metadata.namespace.
terraform { required_version = ">= 1.0"
required_providers { xcsh = { source = "f5-sales-demo/xcsh" version = ">= 0.1.0" } }}
# Basic APIDiscovery configurationresource "xcsh_api_discovery" "example" { name = "example-api-discovery" namespace = "staging"}Argument Reference
Section titled “Argument Reference”-> 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.
Minimum Configuration
Section titled “Minimum Configuration”Required fields:
namenamespaceuser_defined_api_discovery_policy
Example (API format):
apiVersion: v1kind: api_discoverymetadata: name: example-discovery namespace: demo-appspec: user_defined_api_discovery_policy: {}Metadata Argument Reference
Section titled “Metadata Argument Reference”• name - Required String
Name of the API Discovery. Must be unique within the namespace
• namespace - Required String
Namespace where the API Discovery 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
Spec Argument Reference
Section titled “Spec Argument Reference”• custom_auth_types - Optional Block Defaults to []
Select your custom authentication types to be detected in the API discovery. Server applies default when omitted
See Custom Auth Types below for details.
• timeouts - Optional Block
See Timeouts below for details.
• user_defined_api_discovery_policy - Optional Block
Rules are evaluated sequentially, top to bottom. If no rules are added, all traffic will be discovered or ignored based on the selection in the ‘Default Behaviour of the Rule Set’ field
See User Defined API Discovery
Policy below for details.
Attributes Reference
Section titled “Attributes Reference”In addition to all arguments above, the following attributes are exported:
• id - Optional String
Unique identifier for the resource
Custom Auth Types
Section titled “Custom Auth Types”A custom_auth_types block supports the following:
• parameter_name - Optional String
The authentication parameter name
• parameter_type - Optional String Defaults to QUERY_PARAMETER
Possible values are QUERY_PARAMETER, HEADER, COOKIE
[Enum: QUERY_PARAMETER|HEADER|COOKIE] Enumeration for authentication parameter types
Timeouts
Section titled “Timeouts”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
User Defined API Discovery Policy
Section titled “User Defined API Discovery Policy”An user_defined_api_discovery_policy block supports the following:
• discovery_rules - Optional Block Defaults to []
Define rules to include or exclude endpoints by path, domain, or header. Rules run top to bottom; unmatched endpoints follow the default action. Server applies default when omitted
See Discovery Rules below.
• exclusive - Optional Block
Exclusion Configuration. Configuration for exclusion action
See Exclusive below.
• inclusive - Optional Block Defaults to map[]
Enable this option. Server applies default when omitted
User Defined API Discovery Policy Discovery Rules
Section titled “User Defined API Discovery Policy Discovery Rules”A discovery_rules block (within user_defined_api_discovery_policy) supports the following:
• labels - Optional Block
Map of string keys and values that can be used to organize and categorize the rule
• metadata - Optional Block
MessageMetaType is metadata (common attributes) of a message that only certain messages have. This information is propagated to the metadata of a child object that gets created from the containing message during view processing. The information in this type can be specified by user during create
See
Metadata below.
• rule_properties - Optional Block
Determines whether matching endpoints are included in API Discovery or excluded
See Rule Properties below.
User Defined API Discovery Policy Discovery Rules Metadata
Section titled “User Defined API Discovery Policy Discovery Rules Metadata”Deeply nested Metadata block collapsed for readability.
User Defined API Discovery Policy Discovery Rules Rule Properties
Section titled “User Defined API Discovery Policy Discovery Rules Rule Properties”Deeply nested Properties block collapsed for readability.
User Defined API Discovery Policy Discovery Rules Rule Properties Exclusion
Section titled “User Defined API Discovery Policy Discovery Rules Rule Properties Exclusion”Deeply nested Exclusion block collapsed for readability.
User Defined API Discovery Policy Discovery Rules Rule Properties HTTP Header Criteria
Section titled “User Defined API Discovery Policy Discovery Rules Rule Properties HTTP Header Criteria”Deeply nested Criteria block collapsed for readability.
User Defined API Discovery Policy Exclusive
Section titled “User Defined API Discovery Policy Exclusive”An exclusive block (within user_defined_api_discovery_policy) supports the following:
• archive - Optional Block
Enable this option
• ignore - Optional Block
Enable this option
Common Types
Section titled “Common Types”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.
| Field | Type | Description |
|---|---|---|
name | String | Name of the referenced object |
namespace | String | Namespace containing the referenced object |
tenant | String | Tenant of the referenced object (system-managed) |
Transformers {#common-transformers}
Section titled “Transformers {#common-transformers}”Transformers apply transformations to input values before matching. Multiple transformers can be applied in order.
| Value | Description |
|---|---|
LOWER_CASE | Convert to lowercase |
UPPER_CASE | Convert to uppercase |
BASE64_DECODE | Decodebase64 content |
NORMALIZE_PATH | Normalize URL path |
REMOVE_WHITESPACE | Remove whitespace characters |
URL_DECODE | Decode URL-encoded characters |
TRIM_LEFT | Trim leading whitespace |
TRIM_RIGHT | Trim trailing whitespace |
TRIM | Trim both leading and trailing whitespace |
HTTP Methods {#common-http-methods}
Section titled “HTTP Methods {#common-http-methods}”HTTP methods used for request matching.
| Value | Description |
|---|---|
ANY | Match any HTTP method |
GET | HTTP GET request |
HEAD | HTTP HEAD request |
POST | HTTP POST request |
PUT | HTTP PUT request |
DELETE | HTTP DELETE request |
CONNECT | HTTP CONNECT request |
OPTIONS | HTTP OPTIONS request |
TRACE | HTTP TRACE request |
PATCH | HTTP PATCH request |
COPY | HTTP COPY request (WebDAV) |
TLS Fingerprints {#common-tls-fingerprints}
Section titled “TLS Fingerprints {#common-tls-fingerprints}”TLS fingerprint categories for malicious client detection.
| Value | Description |
|---|---|
TLS_FINGERPRINT_NONE | No fingerprint matching |
ANY_MALICIOUS_FINGERPRINT | Match any known malicious fingerprint |
ADWARE | Adware-associated fingerprints |
DRIDEX | Dridex malware fingerprints |
GOOTKIT | Gootkit malware fingerprints |
RANSOMWARE | Ransomware-associated fingerprints |
TRICKBOT | Trickbot 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.
| Value | Description |
|---|---|
SPAM_SOURCES | Known spam sources |
WINDOWS_EXPLOITS | Windows exploit sources |
WEB_ATTACKS | Web attack sources |
BOTNETS | Known botnet IPs |
SCANNERS | Network scanner IPs |
REPUTATION | Poor reputation IPs |
PHISHING | Phishing-related IPs |
PROXY | Anonymous proxy IPs |
MOBILE_THREATS | Mobile threat sources |
TOR_PROXY | Tor exit nodes |
DENIAL_OF_SERVICE | DoS attack sources |
NETWORK | Known bad network ranges |
Import
Section titled “Import”Import is supported using the following syntax:
# Import using namespace/name formatterraform import xcsh_api_discovery.example system/example