priv/docs/zone_rulesets.md
# Zone Rulesets
## Create a zone ruleset
**POST** `/zones/{zone_id}/rulesets`
Creates a ruleset at the zone level.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## List zone rulesets
**GET** `/zones/{zone_id}/rulesets`
Fetches all rulesets at the zone level.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Update a zone entry point ruleset
**PUT** `/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint`
Updates a zone entry point ruleset, creating a new version.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Get a zone entry point ruleset
**GET** `/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint`
Fetches the latest version of the zone entry point ruleset for a given phase.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## List a zone entry point ruleset's versions
**GET** `/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions`
Fetches the versions of a zone entry point ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Get a zone entry point ruleset version
**GET** `/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions/{ruleset_version}`
Fetches a specific version of a zone entry point ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Update a zone ruleset
**PUT** `/zones/{zone_id}/rulesets/{ruleset_id}`
Updates a zone ruleset, creating a new version.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Get a zone ruleset
**GET** `/zones/{zone_id}/rulesets/{ruleset_id}`
Fetches the latest version of a zone ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Delete a zone ruleset
**DELETE** `/zones/{zone_id}/rulesets/{ruleset_id}`
Deletes all versions of an existing zone ruleset.
### Responses
#### 204
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Create a zone ruleset rule
**POST** `/zones/{zone_id}/rulesets/{ruleset_id}/rules`
Adds a new rule to a zone ruleset. The rule will be added to the end of the existing list of rules in the ruleset by default.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Update a zone ruleset rule
**PATCH** `/zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}`
Updates an existing rule in a zone ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Delete a zone ruleset rule
**DELETE** `/zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}`
Deletes an existing rule from a zone ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## List a zone ruleset's versions
**GET** `/zones/{zone_id}/rulesets/{ruleset_id}/versions`
Fetches the versions of a zone ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Get a zone ruleset version
**GET** `/zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}`
Fetches a specific version of a zone ruleset.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## Delete a zone ruleset version
**DELETE** `/zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}`
Deletes an existing version of a zone ruleset.
### Responses
#### 204
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```
## List a zone ruleset version's rules by tag
**GET** `/zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}/by_tag/{rule_tag}`
Fetches the rules of a managed zone ruleset version for a given tag.
### Responses
#### 200
> Data is at `body["result"]`
```json
```
#### 4XX
```json
```