Publish Application Config
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.
The unique identifier of the application (UUID from POST /monitoring/applications/results-by-app)
398d1f18-cbdf-4960-b881-bb4e160952a8
Site ID and ordered list of publish actions to execute
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
}
]
}
]
}
Unique identifier of the site where all publish actions will be executed.
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.
Accepted. An asynchronous publish job has been created.
{
"id": "a650c4f7-a991-4ae3-9841-dc7d09bc8d7a",
"status_url": "/intelligence/monitoring/applications/398d1f18-cbdf-4960-b881-bb4e160952a8/publish-config/a650c4f7-a991-4ae3-9841-dc7d09bc8d7a"
}
UUID identifier of the response.
The URL to check the status of the operation.
Bad Request. The request body failed validation (e.g. empty publish_actions, invalid paths).
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Unauthorized
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Forbidden
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Conflict. A publish job for this application is already in progress.
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Precondition Failed
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Precondition Required
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Too Many Requests
{
"error_code": 0,
"module_name": "string",
"error_message": "string"
}
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
Error
"Error Object"
HTTP Status or Application error code.
Module where the error happened.
Message describing the error.
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