A Vsite is a networking entity on the Barracuda Web Application Firewall that can be used to host other entities such as service groups, virtual services, servers, and rule groups. A Vsite has its own routing table to route the traffic for services and servers configured in it.
Creating a Vsite
| URL: /v1/vsites | |||
| Method: POST | |||
| Description: Creates a Vsite with the given name. | |||
| Parameter Name | Data Type | Mandatory | Description | 
|---|---|---|---|
| Input Parameters: | |||
| name | Alphanumeric | Yes | A name for the new Vsite. | 
| active_on | Numeric | Conditional | Specify the serial number of the unit on which the Vsite needs to be active. Note: This parameter is applicable ONLY if the unit is deployed in High Availability environment. | 
Creating a Vsite in a Stand-Alone Unit
Example:
# Creating Curl requests
URLs
: HTTP = http://192.168.0.1:8000/restpai/v1/{object_id}
: HTTPS = https://192.168.0.1:443/restapi/v1/{object_id}
# Create URL
: -H = Request Header (Specify Content-Type)
: -X = Request Method (POST,GET,PUT,DELETE)
: -d = JSON data hash
: -u = Authentication token which you got back on login
curl http://192.168.0.1:8000/restapi/v1/vsites -u 'eyJldCI6IjEzNzk2NDA4MzciLCiwidXNlciI6ImFkbWluIn0=\n:' -X POST -H Content-Type:application/json -d '{"name": "demo_vsite"}'
When executed, the above curl script will dump the result, and the output will look like this:
{"id":"demo_vsite","token":"eyJldCI6IjEzNzk2NDMjNzwidXNlciI6ImFkbWluIn0=\n"}
Creating a Vsite in a Clustered Unit
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites -u 'eyJldCI6IjE0MzM5NjwidXNlciI6ImFkbWluIn0=\n:' -X POST -H Content-Type:application/json -d '{"name":"demo_vsite2","active_on":"617055"}'
Response:
{"id":"demo_vsite2","token":"eyJldCI6IjE0MzM5Njc2ODAiLCJlIiwidXNlciI6ImFkbWluIn0=\n"}
Retrieving Vsites
| URL: /v1/vsites/v1/vsites/{vsite_id} | |||
| Method: GET | |||
| Description: Lists all vsites if “vsite_id” is not specified. | |||
| Parameter Name | Data Type | Mandatory | Description | 
|---|---|---|---|
| Input Parameters: | |||
| parameters | Alphanumeric | Yes | The parameter names for which you want to retrieve the value. See Example 2. | 
Example 1:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites -u 'eyJldCI6IjEzODY3MTI3MmIxIiwidXNlciI6ImFkbWluIn0=\n:' -X GET
Response:
{
 "parameters": null,
 "object": "Vsites",
 "data": [
 {
 "service_group": [
 "default"
 ],
 "service_groups": [
 {
 "name": "default",
 "id": "default",
 "virtual_services": [
 {
 "load_balance": {
 "algorithm": "round_robin",
 "failover_method": "load_balance",
 "persistence_method": "none"
 },
 "service_hostname": [
 
 ],
 "advanced_configuration": {
 "enable_web_application_firewall": "yes",
 "keepalive_requests": "64",
 "ntlm_ignore_extra_data": "no"
 },
 "status": "enable",
 "session_timeout": "60",
 "instant_ssl": {
 "secure_site_domain": [
 
 ],
 "status": "off",
 "sharepoint_rewrite_support": "off"
 },
 "comments": null,
 "group": "default",
 "ip_address": "99.99.107.25",
 "id": "SERVICE_1",
 "ssl_offloading": {
 "ciphers": "default",
 "sni_certificate": [
 
 ],
 "trusted_certificates": [
 
 ],
 "status": "off",
 "enforce_client_certificate": "yes",
 "enable_tls_1_2": "yes",
 "enable_strict_sni_check": null,
 "selected_ciphers": "AES256-GCM-SHA384,AES256-SHA256,AES256-SHA,CAMELLIA256-SHA,DES-CBC3-SHA,AES128-GCM-SHA256,AES128-SHA256,AES128-SHA,SEED-SHA,CAMELLIA128-SHA,IDEA-CBC-SHA,RC4-SHA",
 "enable_tls_1": "yes",
 "domain": [
 
 ],
 "enable_sni": "no",
 "enable_tls_1_1": "yes",
 "enable_client_authentication": "no",
 "enable_ssl_3": "yes"
 },
 "mask": "255.255.255.255",
 "enable_access_logs": "yes",
 "name": "SERVICE_1",
 "port": "80",
 "security": {
 "ignore_case": "yes",
 "trusted_hosts_action": "default",
 "mode": "active",
 "web_firewall_log_level": "notice",
 "web_firewall_policy": "default",
 "rate_control_status": "off",
 "trusted_hosts_group": "",
 "rate_control_pool": "NONE",
 "client_ip_addr_header": null
 },
 "address_version": "ipv4",
 "servers": [
 {
 "in_band_health_checks": {
 "max_http_errors": "0",
 "max_refused": "10",
 "max_timeout_failure": "10",
 "max_other_failure": "10"
 },
 "out_of_band_health_checks": {
 "enable_OOB_health_checks": "yes",
 "interval": "10"
 },
 "advanced_configuration": {
 "client_impersonation": "no",
 "max_establishing_connections": "100",
 "max_keepalive_requests": "0",
 "max_connections": "10000",
 "max_requests": "1000",
 "timeout": "300000",
 "source_ip_to_connect": null,
 "max_spare_connections": "0"
 },
 "ssl": {
 "enable_https": "no",
 "enable_tls_1_1": "yes",
 "client_certificate": null,
 "enable_ssl_3": "yes",
 "validate_certificate": "yes",
 "enable_tls_1_2": "yes",
 "enable_tls_1": "yes"
 },
 "status": "in-service",
 "name": null,
 "application_layer_health_check": {
 "additional_headers": [
 
 ],
 "status_code": "200",
 "url": null,
 "method": "GET",
 "match_content_string": null
 },
 "port": "80",
 "comments": null,
 "backup_server": "no",
 "connection_pooling": {
 "enable_connection_pooling": "yes",
 "keepalive_timeout": "900000"
 },
 "weight": "1",
 "ip_address": "11.11.1.117",
 "id": null
 }
 ],
 "type": "HTTP",
 "content_rules": [
 
 ]
 }
 ]
 }
 ],
 "name": "default",
 "id": "default",
 "active_on": "140949",
 "comments": null
 }
 ],
 "limit": null,
 "token": "eyJldCI6IjEzODY3MTI2OTUiLCJwYNTMzIiwidXNlciI6ImFkbWluIn0=\n",
 "offset": null
}
Example 2:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites -u 'eyJldCI6IjEzODY3MTIiwidXNlciI6ImFkbWluIn0=\n:' -X GET -G -d parameters=name
Response:
{"parameters":["name"],"object":"Vsites","data":[{"name":"default"},{"name":"Cuda"}],"limit":null,"token":"eyJldCI6IjEzODY3MTlciI6ImFkbWluIn0=\n","offset":null}
Example 3:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites -u 'eyJldCI6IjE0MzM5NjUzyIiwidXNlciI6ImFkbWluIn0=\n:' -X GET -G -d parameters=active_on,service_group
Response:
{
 "parameters": [
 "active_on",
 "service_group"
 ],
 "object": "Vsites",
 "data": [
 {
 "service_group": [
 "default"
 ],
 "active_on": "511256"
 },
 {
 "service_group": [
 "dut1_vsite1_group"
 ],
 "active_on": "511256"
 },
 {
 "service_group": [
 "dut2_vsite1_group"
 ],
 "active_on": "617055"
 },
 {
 "service_group": [
 "demo_vsite2_group"
 ],
 "active_on": "511256"
 }
 ],
 "limit": null,
 "token": "eyJldCI6IjE0MzM5Njc3NzAiLCxIiwidXNlciI6ImFkbWluIn0=\n",
 "offset": null
}
Updating a Vsite
| URL: /v1/vsites/{vsite_id} | |||
| Method: PUT | |||
| Description: Updates the Vsite with the given value. | |||
| Parameter Name | Data Type | Mandatory | Description | 
|---|---|---|---|
| Input Parameters: | |||
| Comments | Alphanumeric | Optional | Description of the Vsite. | 
Updating a Vsite in a Stand-Alone Unit
Example 1:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites/demo_vsite -u 'eyJldCI6IjEzODAyMzQyM2IiwidXNlciI6ImFkbWluIn0=\n:' -X PUT -H Content-Type:application/json -d '{"comments":"TEST"}'
Response:
{"msg":"Configuration Updated","id":"demo_vsite","token":"eyJldCI6IjEzODAyMzYzmJlIiwidXNlciI6ImFkbWluIn0=\n"}
Updating a Vsite in a Clustered Unit
Example 2:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites/demo_vsite2 -u 'eyJldCI6IjE0MzM5NjUzMI3MXNlciI6ImFkbWluIn0=\n:' -X PUT -H Content-Type:application/json -d '{"comments":"TEST","active_on":"511256"} '
Response:
{"msg":"Configuration Updated","id":"demo_vsite2","token":"eyJldCI6IjE0MzM5Njc3NDM2QxIiwidXNlciI6ImFkbWluIn0=\n"}
Deleting a Vsite
| URL: /v1/vsites/{vsite_id} | 
| Method: DELETE | 
| Description: Deletes the given Vsite. | 
Example:
Request:
curl http://192.168.0.1:8000/restapi/v1/vsites/demo_vsite -u 'eyJldCI6IjEzNzk0GNlwidXNlciI6ImFkbWluIn0=\n:' -X DELETE
Response:
{"msg":"Successfully deleted","token":"eyJldCI6IjEzNzk2YzA2MzFiIiwidXNlciI6ImFkbWluIn0=\n"}
