Skip to main content

REST APIs for 24.2.20 and 24.2.10

Provisioning (Public Stable)

This Public Stable API provisions all current changes (additions, changes, and deletions) to your security policy.

This API can also return a collection of provisioning or individual provisioning versions.

To get information about unprovisioned changes to security policy items, find provisioning dependencies, delete unprovisioned security policy items, revert the last provisioned items, and check whether a security rules exists that allows communications between two workloads, see "Provisioning - Public Experimental".

Provisioning API Methods

Functionality

HTTP

URI

Provision the current set of modified security policy items

POST

[api_version][org_href]/sec_policy

Get a list of all provisioned security policy versions

GET

[api_version][org_href]/sec_policy

Get a specific version of a provisioned security policy

GET

[api_version][sec_policy_version_href]

Provision All Items

Policy item additions, modifications, and deletions must be provisioned before they take effect on workloads.

URI to Provision All Items

POST api_version][org_href]/sec_policy

Provision All Items

This example passes a provisioning comment using the curl -d option (lowercase d) followed by the comment '{"update_description":"make active"}'. This operation provisions all draft policy items.

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy -H "Content-Type: application/json" -u $KEY:$TOKEN -d '{"update_description":"make active"}' 

Response

After provisioning the draft security policy, the response provides information related to the operation, including the version HREF of the provisioning.

You can use a provision history HREF to get all modified items for a particular version.

The response also indicates how many workloads were affected, when the provisioning was done, which user did it, and any message that was provided.

{
      "href": "/orgs/2/sec_policy/80",
      "commit_message": null,    "version": 80,
      "workloads_affected": 3,
      "object_counts": 3,
      "created_at": "2015-09-26T21:48:46.446Z",
      "created_by": { "href": "/users/18" }
}
Provision Individual Items

Curl Example

The request body uses update_description instead of commit_message, and instead of entities, define an array of pending HREFs for each method as appropriate.

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy -H "Content- Type:application/json" -u $KEY:$TOKEN -d '{"change_subset":{"rule_sets":[{"href": "/orgs/2/sec_policy/draft/rule_sets/843"}], "ip_lists": [{"href": "/orgs/2/sec_policy/draft/ip_lists/151"}]}, "update_description":"Provisioning a ruleset and an ip list"}'

Request Body Prototype

The security policy POST request body has this format. Only define the methods used in the call and don't include any unused methods in the request body.

{
	"update_description": "string",
	"change_subset": {
		"label_groups": [
		{      
			"href": "string"
		}
	],
	"services": [
		{
			"href": "string"
		}
	],
	"rule_sets": [
		{
			"href": "string"
		}
	],
	"ip_lists": [
		{
			"href": "string"
		}
	],
	"virtual_services": [
		{
			"href": "string"
		}
	],
	"firewall_settings": [
		{
			"href": "string"
		} 
	],
	"enforcement_boundaries": [
		{
			"href": "string"
		}
	],
	"secure_connect_gateways": [
		{
			"href": "string"
		}
	],
	"virtual_servers": [
		{
			"href": "string"
		}
	]
	}
}	
Restore the Previous Security Policy

This API creates draft changes of the previous security policy's changes. When this API is called, there should not be any draft changes present in the PCE.

Curl Command to Restore the Security Policy

curl -i -X POSThttps://pce.my-company.com:8443/api/v2/orgs/1/sec_policy/127/restore -H "Content-Type: application/json" -u $KEY:$TOKEN -d {}
Get All Provision Versions

This method gets the full history of all provisioned security policy versions.

URI to Get All Provisioned Versions

GET [api_version][org_href]/sec_policy

Get the Provision Versions

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/1/sec_policy/127/restore -H "Content-Type: application/json" -u $KEY:$TOKEN -d {}

Response

Note that field selective_enforcement_rules was renamed to enforcement_boundaries in the object_counts property.

{
	"href": "string",
	"version": "string",
	"workloads_affected": 0,
	"commit_message": "string",
	"object_counts": {
		"rule_sets": 0,
		"ip_lists": 0,
		"services": 0,
		"virtual_services": 0,
		"label_groups": 0,
		"virtual_servers": 0,
		"firewall_settings": 0,
		"secure_connect_gateways": 0,
		"enforcement_boundaries": 0
	},
	"created_at": "string",
	"created_by": {
		"href": "string"
	}
}     
Get an Individual Provision Version

This method gets a specific version of a provisioned policy.

Every time security policy is provisioned, it gets a unique version ID, which takes the form of an HREF. This HREF can be obtained from a GET of all security policy provisioned versions and then used in this call.

URI to Get an Individual Version of a Provisioned Policy

GET  [api_version][sec_policy_version_href]

Curl Command to Get Version

curl -i -X GET https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy/79 -H "Accept: application/json" -u $KEY:$TOKEN

Response

{
	"href": "string",
	"version": "string",
	"workloads_affected": 0,
	"commit_message": "string",
	"object_counts": {
		"rule_sets": 0,
		"ip_lists": 0,
		"services": 0,
		"virtual_services": 0,
		"label_groups": 0,
		"virtual_servers": 0,
		"firewall_settings": 0,
		"secure_connect_gateways": 0,
		"enforcement_boundaries": 0
	},
	"created_at": "string",
	"created_by": {
		"href": "string"
	}
}
Provisioning Reference (Public Stable)

This topic covers examples of public stable provisioning API.

Examples

Provision All Items

This example passes a provisioning comment using the curl -d option (lowercase d) followed by the comment '{"update_description":"make active"}'. This operation provisions all draft policy items.

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy -H "Content-Type: application/json" -u $KEY:$TOKEN -d '{"update_description":"make active"}' 

Response

After provisioning the draft security policy, the response provides information related to the operation, including the version HREF of the provisioning.

You can use a provision history HREF to get all modified items for a particular version.

The response also indicates how many workloads were affected, when the provisioning was done, which user did it, and any provided message.

{
      "href": "/orgs/2/sec_policy/80",
      "commit_message": null,    "version": 80,
      "workloads_affected": 3,
      "object_counts": 3,
      "created_at": "2020-26T21:48:46.446Z",
      "created_by": { "href": "/users/18" }
}
Provision Individual Items

Curl Example

The request body uses update_description instead of commit_message, and instead of entities, define an array of pending HREFs for each method as appropriate.

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy -H "Content- Type:application/json" -u $KEY:$TOKEN -d '{"change_subset":{"rule_sets":[{"href": "/orgs/2/sec_policy/draft/rule_sets/843"}], "ip_lists": [{"href": "/orgs/2/sec_policy/draft/ip_lists/151"}]}, "update_description":"Provisioning a ruleset and an ip list"}'

Request Body Prototype

The security policy POST request body has this format. Only define the methods used in the call and don't include any unused methods in the request body.

{
	"update_description": "string",
	"change_subset": {
		"label_groups": [
		{      
			"href": "string"
		}
	],
	"services": [
		{
			"href": "string"
		}
	],
	"rule_sets": [
		{
			"href": "string"
		}
	],
	"ip_lists": [
		{
			"href": "string"
		}
	],
	"virtual_services": [
		{
			"href": "string"
		}
	],
	"firewall_settings": [
		{
			"href": "string"
		} 
	],
	"enforcement_boundaries": [
		{
			"href": "string"
		}
	],
	"secure_connect_gateways": [
		{
			"href": "string"
		}
	],
	"virtual_servers": [
		{
			"href": "string"
		}
	]
Restore the Previous Security Policy

This API creates draft changes of the previous security policy's changes. When this API is called, the draft changes should not be present in the PCE.

Curl Command to Restore the Security Policy

curl -i -X POSThttps://pce.my-company.com:8443/api/v2/orgs/1/sec_policy/127/restore -H "Content-Type: application/json" -u $KEY:$TOKEN -d {}
Get All Provision Versions

This method gets the full history of all provisioned security policy versions.

URI to Get All Provisioned Versions

GET [api_version][org_href]/sec_policy

Get the Provision Versions

curl -i -X POST https://pce.my-company.com:8443/api/v2/orgs/1/sec_policy/127/restore -H "Content-Type: application/json" -u $KEY:$TOKEN -d {}

Response

Note that the field selective_enforcement_rules was renamed to enforcement_boundaries in the object_counts property.

{
	"href": "string",
	"version": "string",
	"workloads_affected": 0,
	"commit_message": "string",
	"object_counts": {
		"rule_sets": 0,
		"ip_lists": 0,
		"services": 0,
		"virtual_services": 0,
		"label_groups": 0,
		"virtual_servers": 0,
		"firewall_settings": 0,
		"secure_connect_gateways": 0,
		"enforcement_boundaries": 0
	},
	"created_at": "string",
	"created_by": {
		"href": "string"
	}
}     

Curl Command to Get Version

curl -i -X GET https://pce.my-company.com:8443/api/v2/orgs/2/sec_policy/79 -H "Accept: application/json" -u $KEY:$TOKEN

Response

{
	"href": "string",
	"version": "string",
	"workloads_affected": 0,
	"commit_message": "string",
	"object_counts": {
		"rule_sets": 0,
		"ip_lists": 0,
		"services": 0,
		"virtual_services": 0,
		"label_groups": 0,
		"virtual_servers": 0,
		"firewall_settings": 0,
		"secure_connect_gateways": 0,
		"enforcement_boundaries": 0
	},
	"created_at": "string",
	"created_by": {
		"href": "string"
	}
}