priv/docs/zero_trust_gateway_rules.md

# Zero Trust Gateway rules

## Create a Zero Trust Gateway rule

**POST** `/accounts/{account_id}/gateway/rules`

Create a new Zero Trust Gateway rule.

### Responses

#### 200 Create a Zero Trust Gateway rule response.

> Data is at `body["result"]`

```json
{
  "action": "*string*",
  "created_at": "*string*",
  "deleted_at": "*string*",
  "description": "*string*",
  "device_posture": "*string*",
  "enabled": "*boolean*",
  "expiration": {
    "duration": "*integer*",
    "expired": "*boolean*",
    "expires_at": "*string*"
  },
  "filters": [
    "*string*"
  ],
  "id": "*string*",
  "identity": "*string*",
  "name": "*string*",
  "precedence": "*integer*",
  "read_only": "*boolean*",
  "rule_settings": {
    "add_headers": {},
    "allow_child_bypass": "*boolean*",
    "audit_ssh": {
      "command_logging": "*boolean*"
    },
    "biso_admin_controls": {
      "copy": "*string*",
      "dcp": "*boolean*",
      "dd": "*boolean*",
      "dk": "*boolean*",
      "download": "*string*",
      "dp": "*boolean*",
      "du": "*boolean*",
      "keyboard": "*string*",
      "paste": "*string*",
      "printing": "*string*",
      "upload": "*string*",
      "version": "*string*"
    },
    "block_page": {
      "include_context": "*boolean*",
      "target_uri": "*string*"
    },
    "block_page_enabled": "*boolean*",
    "block_reason": "*string*",
    "bypass_parent_rule": "*boolean*",
    "check_session": {
      "duration": "*string*",
      "enforce": "*boolean*"
    },
    "dns_resolvers": {
      "ipv4": [
        null
      ],
      "ipv6": [
        null
      ]
    },
    "egress": {
      "ipv4": "*string*",
      "ipv4_fallback": "*string*",
      "ipv6": "*string*"
    },
    "forensic_copy": {
      "enabled": "*boolean*"
    },
    "ignore_cname_category_matches": "*boolean*",
    "insecure_disable_dnssec_validation": "*boolean*",
    "ip_categories": "*boolean*",
    "ip_indicator_feeds": "*boolean*",
    "l4override": {
      "ip": "*string*",
      "port": "*integer*"
    },
    "notification_settings": {
      "enabled": "*boolean*",
      "include_context": "*boolean*",
      "msg": "*string*",
      "support_url": "*string*"
    },
    "override_host": "*string*",
    "override_ips": [
      "*string*"
    ],
    "payload_log": {
      "enabled": "*boolean*"
    },
    "quarantine": {
      "file_types": [
        "*string*"
      ]
    },
    "redirect": {
      "include_context": "*boolean*",
      "preserve_path_and_query": "*boolean*",
      "target_uri": "*string*"
    },
    "resolve_dns_internally": {
      "fallback": "*string*",
      "view_id": "*string*"
    },
    "resolve_dns_through_cloudflare": "*boolean*",
    "untrusted_cert": {
      "action": "*string*"
    }
  },
  "schedule": {
    "fri": "*string*",
    "mon": "*string*",
    "sat": "*string*",
    "sun": "*string*",
    "thu": "*string*",
    "time_zone": "*string*",
    "tue": "*string*",
    "wed": "*string*"
  },
  "sharable": "*boolean*",
  "source_account": "*string*",
  "traffic": "*string*",
  "updated_at": "*string*",
  "version": "*integer*",
  "warning_status": "*string*"
}
```

#### 4XX Create a Zero Trust Gateway rule response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "success": "*boolean*"
}
```



## List Zero Trust Gateway rules

**GET** `/accounts/{account_id}/gateway/rules`

List Zero Trust Gateway rules for an account.

### Responses

#### 200 List Zero Trust Gateway rules response.

> Data is at `body["result"]`

```json
[
  {
    "action": "*string*",
    "created_at": "*string*",
    "deleted_at": "*string*",
    "description": "*string*",
    "device_posture": "*string*",
    "enabled": "*boolean*",
    "expiration": {
      "duration": "*integer*",
      "expired": "*boolean*",
      "expires_at": null
    },
    "filters": [
      "*string*"
    ],
    "id": "*string*",
    "identity": "*string*",
    "name": "*string*",
    "precedence": "*integer*",
    "read_only": "*boolean*",
    "rule_settings": {
      "add_headers": {},
      "allow_child_bypass": "*boolean*",
      "audit_ssh": {
        "command_logging": null
      },
      "biso_admin_controls": {
        "copy": null,
        "dcp": null,
        "dd": null,
        "dk": null,
        "download": null,
        "dp": null,
        "du": null,
        "keyboard": null,
        "paste": null,
        "printing": null,
        "upload": null,
        "version": null
      },
      "block_page": {
        "include_context": null,
        "target_uri": null
      },
      "block_page_enabled": "*boolean*",
      "block_reason": "*string*",
      "bypass_parent_rule": "*boolean*",
      "check_session": {
        "duration": null,
        "enforce": null
      },
      "dns_resolvers": {
        "ipv4": null,
        "ipv6": null
      },
      "egress": {
        "ipv4": null,
        "ipv4_fallback": null,
        "ipv6": null
      },
      "forensic_copy": {
        "enabled": null
      },
      "ignore_cname_category_matches": "*boolean*",
      "insecure_disable_dnssec_validation": "*boolean*",
      "ip_categories": "*boolean*",
      "ip_indicator_feeds": "*boolean*",
      "l4override": {
        "ip": null,
        "port": null
      },
      "notification_settings": {
        "enabled": null,
        "include_context": null,
        "msg": null,
        "support_url": null
      },
      "override_host": "*string*",
      "override_ips": [
        null
      ],
      "payload_log": {
        "enabled": null
      },
      "quarantine": {
        "file_types": null
      },
      "redirect": {
        "include_context": null,
        "preserve_path_and_query": null,
        "target_uri": null
      },
      "resolve_dns_internally": {
        "fallback": null,
        "view_id": null
      },
      "resolve_dns_through_cloudflare": "*boolean*",
      "untrusted_cert": {
        "action": null
      }
    },
    "schedule": {
      "fri": "*string*",
      "mon": "*string*",
      "sat": "*string*",
      "sun": "*string*",
      "thu": "*string*",
      "time_zone": "*string*",
      "tue": "*string*",
      "wed": "*string*"
    },
    "sharable": "*boolean*",
    "source_account": "*string*",
    "traffic": "*string*",
    "updated_at": "*string*",
    "version": "*integer*",
    "warning_status": "*string*"
  }
]
```

#### 4XX List Zero Trust Gateway rules response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "result_info": {
    "count": "*number*",
    "page": "*number*",
    "per_page": "*number*",
    "total_count": "*number*"
  },
  "success": "*boolean*"
}
```



## List Zero Trust Gateway rules inherited from the parent account

**GET** `/accounts/{account_id}/gateway/rules/tenant`

List Zero Trust Gateway rules for the parent account of an account in the MSP configuration.

### Responses

#### 200 List Zero Trust Gateway rules response.

> Data is at `body["result"]`

```json
[
  {
    "action": "*string*",
    "created_at": "*string*",
    "deleted_at": "*string*",
    "description": "*string*",
    "device_posture": "*string*",
    "enabled": "*boolean*",
    "expiration": {
      "duration": "*integer*",
      "expired": "*boolean*",
      "expires_at": null
    },
    "filters": [
      "*string*"
    ],
    "id": "*string*",
    "identity": "*string*",
    "name": "*string*",
    "precedence": "*integer*",
    "read_only": "*boolean*",
    "rule_settings": {
      "add_headers": {},
      "allow_child_bypass": "*boolean*",
      "audit_ssh": {
        "command_logging": null
      },
      "biso_admin_controls": {
        "copy": null,
        "dcp": null,
        "dd": null,
        "dk": null,
        "download": null,
        "dp": null,
        "du": null,
        "keyboard": null,
        "paste": null,
        "printing": null,
        "upload": null,
        "version": null
      },
      "block_page": {
        "include_context": null,
        "target_uri": null
      },
      "block_page_enabled": "*boolean*",
      "block_reason": "*string*",
      "bypass_parent_rule": "*boolean*",
      "check_session": {
        "duration": null,
        "enforce": null
      },
      "dns_resolvers": {
        "ipv4": null,
        "ipv6": null
      },
      "egress": {
        "ipv4": null,
        "ipv4_fallback": null,
        "ipv6": null
      },
      "forensic_copy": {
        "enabled": null
      },
      "ignore_cname_category_matches": "*boolean*",
      "insecure_disable_dnssec_validation": "*boolean*",
      "ip_categories": "*boolean*",
      "ip_indicator_feeds": "*boolean*",
      "l4override": {
        "ip": null,
        "port": null
      },
      "notification_settings": {
        "enabled": null,
        "include_context": null,
        "msg": null,
        "support_url": null
      },
      "override_host": "*string*",
      "override_ips": [
        null
      ],
      "payload_log": {
        "enabled": null
      },
      "quarantine": {
        "file_types": null
      },
      "redirect": {
        "include_context": null,
        "preserve_path_and_query": null,
        "target_uri": null
      },
      "resolve_dns_internally": {
        "fallback": null,
        "view_id": null
      },
      "resolve_dns_through_cloudflare": "*boolean*",
      "untrusted_cert": {
        "action": null
      }
    },
    "schedule": {
      "fri": "*string*",
      "mon": "*string*",
      "sat": "*string*",
      "sun": "*string*",
      "thu": "*string*",
      "time_zone": "*string*",
      "tue": "*string*",
      "wed": "*string*"
    },
    "sharable": "*boolean*",
    "source_account": "*string*",
    "traffic": "*string*",
    "updated_at": "*string*",
    "version": "*integer*",
    "warning_status": "*string*"
  }
]
```

#### 4XX List Zero Trust Gateway rules response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "result_info": {
    "count": "*number*",
    "page": "*number*",
    "per_page": "*number*",
    "total_count": "*number*"
  },
  "success": "*boolean*"
}
```



## Update a Zero Trust Gateway rule

**PUT** `/accounts/{account_id}/gateway/rules/{rule_id}`

Update a configured Zero Trust Gateway rule.

### Responses

#### 200 Update a Zero Trust Gateway rule response.

> Data is at `body["result"]`

```json
{
  "action": "*string*",
  "created_at": "*string*",
  "deleted_at": "*string*",
  "description": "*string*",
  "device_posture": "*string*",
  "enabled": "*boolean*",
  "expiration": {
    "duration": "*integer*",
    "expired": "*boolean*",
    "expires_at": "*string*"
  },
  "filters": [
    "*string*"
  ],
  "id": "*string*",
  "identity": "*string*",
  "name": "*string*",
  "precedence": "*integer*",
  "read_only": "*boolean*",
  "rule_settings": {
    "add_headers": {},
    "allow_child_bypass": "*boolean*",
    "audit_ssh": {
      "command_logging": "*boolean*"
    },
    "biso_admin_controls": {
      "copy": "*string*",
      "dcp": "*boolean*",
      "dd": "*boolean*",
      "dk": "*boolean*",
      "download": "*string*",
      "dp": "*boolean*",
      "du": "*boolean*",
      "keyboard": "*string*",
      "paste": "*string*",
      "printing": "*string*",
      "upload": "*string*",
      "version": "*string*"
    },
    "block_page": {
      "include_context": "*boolean*",
      "target_uri": "*string*"
    },
    "block_page_enabled": "*boolean*",
    "block_reason": "*string*",
    "bypass_parent_rule": "*boolean*",
    "check_session": {
      "duration": "*string*",
      "enforce": "*boolean*"
    },
    "dns_resolvers": {
      "ipv4": [
        null
      ],
      "ipv6": [
        null
      ]
    },
    "egress": {
      "ipv4": "*string*",
      "ipv4_fallback": "*string*",
      "ipv6": "*string*"
    },
    "forensic_copy": {
      "enabled": "*boolean*"
    },
    "ignore_cname_category_matches": "*boolean*",
    "insecure_disable_dnssec_validation": "*boolean*",
    "ip_categories": "*boolean*",
    "ip_indicator_feeds": "*boolean*",
    "l4override": {
      "ip": "*string*",
      "port": "*integer*"
    },
    "notification_settings": {
      "enabled": "*boolean*",
      "include_context": "*boolean*",
      "msg": "*string*",
      "support_url": "*string*"
    },
    "override_host": "*string*",
    "override_ips": [
      "*string*"
    ],
    "payload_log": {
      "enabled": "*boolean*"
    },
    "quarantine": {
      "file_types": [
        "*string*"
      ]
    },
    "redirect": {
      "include_context": "*boolean*",
      "preserve_path_and_query": "*boolean*",
      "target_uri": "*string*"
    },
    "resolve_dns_internally": {
      "fallback": "*string*",
      "view_id": "*string*"
    },
    "resolve_dns_through_cloudflare": "*boolean*",
    "untrusted_cert": {
      "action": "*string*"
    }
  },
  "schedule": {
    "fri": "*string*",
    "mon": "*string*",
    "sat": "*string*",
    "sun": "*string*",
    "thu": "*string*",
    "time_zone": "*string*",
    "tue": "*string*",
    "wed": "*string*"
  },
  "sharable": "*boolean*",
  "source_account": "*string*",
  "traffic": "*string*",
  "updated_at": "*string*",
  "version": "*integer*",
  "warning_status": "*string*"
}
```

#### 4XX Update a Zero Trust Gateway rule response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "success": "*boolean*"
}
```



## Get Zero Trust Gateway rule details.

**GET** `/accounts/{account_id}/gateway/rules/{rule_id}`

Get a single Zero Trust Gateway rule.

### Responses

#### 200 Get Zero Trust Gateway rule details response.

> Data is at `body["result"]`

```json
{
  "action": "*string*",
  "created_at": "*string*",
  "deleted_at": "*string*",
  "description": "*string*",
  "device_posture": "*string*",
  "enabled": "*boolean*",
  "expiration": {
    "duration": "*integer*",
    "expired": "*boolean*",
    "expires_at": "*string*"
  },
  "filters": [
    "*string*"
  ],
  "id": "*string*",
  "identity": "*string*",
  "name": "*string*",
  "precedence": "*integer*",
  "read_only": "*boolean*",
  "rule_settings": {
    "add_headers": {},
    "allow_child_bypass": "*boolean*",
    "audit_ssh": {
      "command_logging": "*boolean*"
    },
    "biso_admin_controls": {
      "copy": "*string*",
      "dcp": "*boolean*",
      "dd": "*boolean*",
      "dk": "*boolean*",
      "download": "*string*",
      "dp": "*boolean*",
      "du": "*boolean*",
      "keyboard": "*string*",
      "paste": "*string*",
      "printing": "*string*",
      "upload": "*string*",
      "version": "*string*"
    },
    "block_page": {
      "include_context": "*boolean*",
      "target_uri": "*string*"
    },
    "block_page_enabled": "*boolean*",
    "block_reason": "*string*",
    "bypass_parent_rule": "*boolean*",
    "check_session": {
      "duration": "*string*",
      "enforce": "*boolean*"
    },
    "dns_resolvers": {
      "ipv4": [
        null
      ],
      "ipv6": [
        null
      ]
    },
    "egress": {
      "ipv4": "*string*",
      "ipv4_fallback": "*string*",
      "ipv6": "*string*"
    },
    "forensic_copy": {
      "enabled": "*boolean*"
    },
    "ignore_cname_category_matches": "*boolean*",
    "insecure_disable_dnssec_validation": "*boolean*",
    "ip_categories": "*boolean*",
    "ip_indicator_feeds": "*boolean*",
    "l4override": {
      "ip": "*string*",
      "port": "*integer*"
    },
    "notification_settings": {
      "enabled": "*boolean*",
      "include_context": "*boolean*",
      "msg": "*string*",
      "support_url": "*string*"
    },
    "override_host": "*string*",
    "override_ips": [
      "*string*"
    ],
    "payload_log": {
      "enabled": "*boolean*"
    },
    "quarantine": {
      "file_types": [
        "*string*"
      ]
    },
    "redirect": {
      "include_context": "*boolean*",
      "preserve_path_and_query": "*boolean*",
      "target_uri": "*string*"
    },
    "resolve_dns_internally": {
      "fallback": "*string*",
      "view_id": "*string*"
    },
    "resolve_dns_through_cloudflare": "*boolean*",
    "untrusted_cert": {
      "action": "*string*"
    }
  },
  "schedule": {
    "fri": "*string*",
    "mon": "*string*",
    "sat": "*string*",
    "sun": "*string*",
    "thu": "*string*",
    "time_zone": "*string*",
    "tue": "*string*",
    "wed": "*string*"
  },
  "sharable": "*boolean*",
  "source_account": "*string*",
  "traffic": "*string*",
  "updated_at": "*string*",
  "version": "*integer*",
  "warning_status": "*string*"
}
```

#### 4XX Get Zero Trust Gateway rule details response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "success": "*boolean*"
}
```



## Delete a Zero Trust Gateway rule

**DELETE** `/accounts/{account_id}/gateway/rules/{rule_id}`

Delete a Zero Trust Gateway rule.

### Responses

#### 200 Delete a Zero Trust Gateway rule response.

> Data is at `body["result"]`

```json
{}
```

#### 4XX Delete a Zero Trust Gateway rule response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "success": "*boolean*"
}
```



## Reset the expiration of a Zero Trust Gateway Rule

**POST** `/accounts/{account_id}/gateway/rules/{rule_id}/reset_expiration`

Resets the expiration of a Zero Trust Gateway Rule if its duration elapsed and it has a default duration. The Zero Trust Gateway Rule must have values  for both `expiration.expires_at` and `expiration.duration`.

### Responses

#### 200 Reset the expiration of a Zero Trust Gateway rule response.

> Data is at `body["result"]`

```json
{
  "action": "*string*",
  "created_at": "*string*",
  "deleted_at": "*string*",
  "description": "*string*",
  "device_posture": "*string*",
  "enabled": "*boolean*",
  "expiration": {
    "duration": "*integer*",
    "expired": "*boolean*",
    "expires_at": "*string*"
  },
  "filters": [
    "*string*"
  ],
  "id": "*string*",
  "identity": "*string*",
  "name": "*string*",
  "precedence": "*integer*",
  "read_only": "*boolean*",
  "rule_settings": {
    "add_headers": {},
    "allow_child_bypass": "*boolean*",
    "audit_ssh": {
      "command_logging": "*boolean*"
    },
    "biso_admin_controls": {
      "copy": "*string*",
      "dcp": "*boolean*",
      "dd": "*boolean*",
      "dk": "*boolean*",
      "download": "*string*",
      "dp": "*boolean*",
      "du": "*boolean*",
      "keyboard": "*string*",
      "paste": "*string*",
      "printing": "*string*",
      "upload": "*string*",
      "version": "*string*"
    },
    "block_page": {
      "include_context": "*boolean*",
      "target_uri": "*string*"
    },
    "block_page_enabled": "*boolean*",
    "block_reason": "*string*",
    "bypass_parent_rule": "*boolean*",
    "check_session": {
      "duration": "*string*",
      "enforce": "*boolean*"
    },
    "dns_resolvers": {
      "ipv4": [
        null
      ],
      "ipv6": [
        null
      ]
    },
    "egress": {
      "ipv4": "*string*",
      "ipv4_fallback": "*string*",
      "ipv6": "*string*"
    },
    "forensic_copy": {
      "enabled": "*boolean*"
    },
    "ignore_cname_category_matches": "*boolean*",
    "insecure_disable_dnssec_validation": "*boolean*",
    "ip_categories": "*boolean*",
    "ip_indicator_feeds": "*boolean*",
    "l4override": {
      "ip": "*string*",
      "port": "*integer*"
    },
    "notification_settings": {
      "enabled": "*boolean*",
      "include_context": "*boolean*",
      "msg": "*string*",
      "support_url": "*string*"
    },
    "override_host": "*string*",
    "override_ips": [
      "*string*"
    ],
    "payload_log": {
      "enabled": "*boolean*"
    },
    "quarantine": {
      "file_types": [
        "*string*"
      ]
    },
    "redirect": {
      "include_context": "*boolean*",
      "preserve_path_and_query": "*boolean*",
      "target_uri": "*string*"
    },
    "resolve_dns_internally": {
      "fallback": "*string*",
      "view_id": "*string*"
    },
    "resolve_dns_through_cloudflare": "*boolean*",
    "untrusted_cert": {
      "action": "*string*"
    }
  },
  "schedule": {
    "fri": "*string*",
    "mon": "*string*",
    "sat": "*string*",
    "sun": "*string*",
    "thu": "*string*",
    "time_zone": "*string*",
    "tue": "*string*",
    "wed": "*string*"
  },
  "sharable": "*boolean*",
  "source_account": "*string*",
  "traffic": "*string*",
  "updated_at": "*string*",
  "version": "*integer*",
  "warning_status": "*string*"
}
```

#### 4XX Reset the expiration of a Zero Trust Gateway rule response failure.

```json
{
  "errors": {},
  "messages": {},
  "result": {},
  "success": "*boolean*"
}
```