Publish Application Config

Publish Application Config
Publish DFW policy changes for an application (async)

Initiate an asynchronous DFW policy publish job for a specific application.

The {application-id} comes from the id field in /monitoring/applications/results-by-app results.

Supported action types:

  • POLICY_CREATE: Create a new DFW security policy scoped to the application group. Optionally set a default connectivity preference and per-application connectivity strategies.
  • POLICY_UPDATE: Replace the default connectivity rule and per-app strategies on an existing policy. This is a full replacement - omitted fields are reset to defaults.
  • RULE_UPDATE: Update the forwarding action of an existing DFW rule. Default rules and auto-plumbed (rules created by segmentation strategy) rules are not supported.

Multiple actions of the same type are allowed in a single request (e.g. update several rules at once).

Polling for completion: The 202 response includes a job_id. Poll GET /monitoring/applications/{application-id}/publish-config/{job-id} until status is COMPLETED or FAILED. The status_url in the response points directly to that endpoint.

Side effects: Each POLICY_CREATE or POLICY_UPDATE action writes a DFW security policy to NSX Manager and triggers NSX realization. Do not call this endpoint in a polling loop.

Returns 409 Conflict if a publish job for this application is already in progress.

Request
URI
POST
https://{api_host}/intelligence/monitoring/applications/{application-id}/publish-config
COPY
Path Parameters
string
application-id
Required  

The unique identifier of the application (UUID from POST /monitoring/applications/results-by-app)

application-id example
398d1f18-cbdf-4960-b881-bb4e160952a8

Request Body

Site ID and ordered list of publish actions to execute

AppPublishConfigRequest of type(s) application/json
Required  

Show optional properties

{
    "site_id": "d2a2ca94-b87c-4d17-b36d-831e616f9597",
    "publish_actions": [
        {
            "action_type": "POLICY_CREATE",
            "display_name": "Payment App Policy",
            "connectivity_preference": "ALLOWLIST",
            "app_connectivity_strategies": [
                {
                    "strategy": "ALLOW_INTRA",
                    "logging": false
                }
            ]
        },
        {
            "action_type": "POLICY_UPDATE",
            "policy_path": "/infra/domains/default/security-policies/Policy-123",
            "connectivity_preference": "ALLOWLIST",
            "app_connectivity_strategies": [
                {
                    "strategy": "ALLOW_INTRA",
                    "logging": false
                },
                {
                    "strategy": "DROP_EGRESS",
                    "logging": true
                }
            ]
        },
        {
            "action_type": "RULE_UPDATE",
            "rule_path": "/infra/domains/default/security-policies/Policy-123/rules/Rule-456",
            "rule_action": "DROP"
        }
    ]
}
{
    "site_id": "5cf83f93-f9dd-4898-a345-44513572c557",
    "publish_actions": [
        {
            "action_type": "POLICY_CREATE",
            "display_name": "LTN_West_debug_PowerBI",
            "connectivity_preference": "DENYLIST",
            "app_connectivity_strategies": [
                {
                    "strategy": "ALLOW_EGRESS",
                    "logging": false
                }
            ]
        }
    ]
}
string
site_id
Required  

Unique identifier of the site where all publish actions will be executed.

array of object
publish_actions
Required  
Constraints: minItems: 1 maxItems: 100

Ordered list of publish actions to execute. Multiple entries of the same action_type are allowed (e.g. update several policies in one request). Each entry targets one resource.

  • POLICY_CREATE: one entry per new security policy to create.
  • POLICY_UPDATE: one entry per existing security policy to update.
  • RULE_UPDATE: one entry per existing DFW rule to update.
Authentication
This operation uses the following authentication methods.
Responses
202

Accepted. An asynchronous publish job has been created.

Returns AsyncApiResponse of type(s) application/json
{
    "id": "a650c4f7-a991-4ae3-9841-dc7d09bc8d7a",
    "status_url": "/intelligence/monitoring/applications/398d1f18-cbdf-4960-b881-bb4e160952a8/publish-config/a650c4f7-a991-4ae3-9841-dc7d09bc8d7a"
}
string
id
Optional

UUID identifier of the response.

string
status_url
Optional

The URL to check the status of the operation.


400

Bad Request. The request body failed validation (e.g. empty publish_actions, invalid paths).

Returns Error of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


401

Unauthorized

Returns Unauthorized of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


403

Forbidden

Returns Forbidden of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


409

Conflict. A publish job for this application is already in progress.

Returns Error of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


412

Precondition Failed

Returns PreconditionFailed of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


428

Precondition Required

Returns PreconditionRequired of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


429

Too Many Requests

Returns TooManyRequests of type(s) application/json
{
    "error_code": 0,
    "module_name": "string",
    "error_message": "string"
}
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


default

Error

Returns Error of type(s) application/json
"Error Object"
integer
error_code
Required  

HTTP Status or Application error code.

string
module_name
Optional

Module where the error happened.

string
error_message
Required  

Message describing the error.


Code Samples
COPY
                    curl -X POST -H 'Authorization: <value>' -H 'Content-Type: application/json' -d '{"site_id":"string","publish_actions":["object"]}' https://{api_host}/intelligence/monitoring/applications/{application-id}/publish-config