pub enum FirewallsCreateBody {
Variant0 {
created_at: Option<DateTime<Utc>>,
droplet_ids: Option<Vec<i64>>,
id: Option<String>,
inbound_rules: Option<Vec<FirewallsCreateBodyVariant0InboundRulesItem>>,
name: FirewallsCreateBodyVariant0Name,
pending_changes: Vec<FirewallsCreateBodyVariant0PendingChangesItem>,
status: Option<FirewallsCreateBodyVariant0Status>,
tags: Option<Vec<String>>,
},
Variant1 {
created_at: Option<DateTime<Utc>>,
droplet_ids: Option<Vec<i64>>,
id: Option<String>,
name: FirewallsCreateBodyVariant1Name,
outbound_rules: Option<Vec<FirewallsCreateBodyVariant1OutboundRulesItem>>,
pending_changes: Vec<FirewallsCreateBodyVariant1PendingChangesItem>,
status: Option<FirewallsCreateBodyVariant1Status>,
tags: Option<Vec<String>>,
},
}Expand description
FirewallsCreateBody
JSON schema
{
"allOf": [
{
"type": "object",
"allOf": [
{
"properties": {
"created_at": {
"description": "A time value given in ISO8601 combined date and time format that represents when the firewall was created.",
"readOnly": true,
"examples": [
"2020-05-23T21:24:00Z"
],
"type": "string",
"format": "date-time"
},
"droplet_ids": {
"description": "An array containing the IDs of the Droplets assigned to the firewall. <br><br>Requires `droplet:read` scope.",
"examples": [
[
8043964
]
],
"type": [
"array",
"null"
],
"items": {
"type": "integer"
}
},
"id": {
"description": "A unique ID that can be used to identify and reference a firewall.",
"readOnly": true,
"examples": [
"bb4b2611-3d72-467b-8602-280330ecd65c"
],
"type": "string"
},
"name": {
"description": "A human-readable name for a firewall. The name must begin with an alphanumeric character. Subsequent characters must either be alphanumeric characters, a period (.), or a dash (-).",
"examples": [
"firewall"
],
"type": "string",
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\.-]+$"
},
"pending_changes": {
"description": "An array of objects each containing the fields \"droplet_id\", \"removing\", and \"status\". It is provided to detail exactly which Droplets are having their security policies updated. When empty, all changes have been successfully applied.",
"readOnly": true,
"examples": [
[
{
"droplet_id": 8043964,
"removing": false,
"status": "waiting"
}
]
],
"type": "array",
"items": {
"type": "object",
"properties": {
"droplet_id": {
"examples": [
8043964
],
"type": "integer"
},
"removing": {
"examples": [
false
],
"type": "boolean"
},
"status": {
"examples": [
"waiting"
],
"type": "string"
}
}
}
},
"status": {
"description": "A status string indicating the current state of the firewall. This can be \"waiting\", \"succeeded\", or \"failed\".",
"readOnly": true,
"examples": [
"waiting"
],
"type": "string",
"enum": [
"waiting",
"succeeded",
"failed"
]
},
"tags": {
"allOf": [
{
"description": "A flat array of tag names as strings to be applied to the resource. Tag names must exist in order to be referenced in a request. <br><br>Requires `tag:create` and `tag:read` scopes.",
"examples": [
[
"base-image",
"prod"
]
],
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
{
"description": "An array containing the names of the Tags assigned to the firewall. <br><br>Requires `tag:read` scope.",
"examples": [
"gateway"
]
}
]
}
}
},
{
"type": "object",
"properties": {
"inbound_rules": {
"type": [
"array",
"null"
],
"items": {
"allOf": [
{
"type": "object",
"required": [
"ports",
"protocol"
],
"properties": {
"ports": {
"description": "The ports on which traffic will be allowed specified as a string containing a single port, a range (e.g. \"8000-9000\"), or \"0\" when all ports are open for a protocol. For ICMP rules this parameter will always return \"0\".",
"examples": [
"8000"
],
"type": "string"
},
"protocol": {
"description": "The type of traffic to be allowed. This may be one of `tcp`, `udp`, or `icmp`.",
"examples": [
"tcp"
],
"type": "string",
"enum": [
"tcp",
"udp",
"icmp"
]
}
}
},
{
"required": [
"sources"
],
"properties": {
"sources": {
"allOf": [
{
"type": "object",
"properties": {
"addresses": {
"description": "An array of strings containing the IPv4 addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the firewall will allow traffic.",
"examples": [
[
"1.2.3.4",
"18.0.0.0/8"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"droplet_ids": {
"description": "An array containing the IDs of the Droplets to which the firewall will allow traffic.",
"examples": [
[
8043964
]
],
"type": "array",
"items": {
"type": "integer"
}
},
"kubernetes_ids": {
"description": "An array containing the IDs of the Kubernetes clusters to which the firewall will allow traffic.",
"examples": [
[
"41b74c5d-9bd0-5555-5555-a57c495b81a3"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"load_balancer_uids": {
"description": "An array containing the IDs of the load balancers to which the firewall will allow traffic.",
"examples": [
[
"4de7ac8b-495b-4884-9a69-1050c6793cd6"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"allOf": [
{
"description": "A flat array of tag names as strings to be applied to the resource. Tag names must exist in order to be referenced in a request. <br><br>Requires `tag:create` and `tag:read` scopes.",
"examples": [
[
"base-image",
"prod"
]
],
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
{
"description": "An array containing the names of Tags corresponding to groups of Droplets to which the firewall will allow traffic.",
"examples": [
[
"frontend"
]
]
}
]
}
}
},
{
"description": "An object specifying locations from which inbound traffic will be accepted."
}
]
}
}
}
]
}
},
"outbound_rules": {
"type": [
"array",
"null"
],
"items": {
"allOf": [
{
"type": "object",
"required": [
"ports",
"protocol"
],
"properties": {
"ports": {
"description": "The ports on which traffic will be allowed specified as a string containing a single port, a range (e.g. \"8000-9000\"), or \"0\" when all ports are open for a protocol. For ICMP rules this parameter will always return \"0\".",
"examples": [
"8000"
],
"type": "string"
},
"protocol": {
"description": "The type of traffic to be allowed. This may be one of `tcp`, `udp`, or `icmp`.",
"examples": [
"tcp"
],
"type": "string",
"enum": [
"tcp",
"udp",
"icmp"
]
}
}
},
{
"required": [
"destinations"
],
"properties": {
"destinations": {
"allOf": [
{
"type": "object",
"properties": {
"addresses": {
"description": "An array of strings containing the IPv4 addresses, IPv6 addresses, IPv4 CIDRs, and/or IPv6 CIDRs to which the firewall will allow traffic.",
"examples": [
[
"1.2.3.4",
"18.0.0.0/8"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"droplet_ids": {
"description": "An array containing the IDs of the Droplets to which the firewall will allow traffic.",
"examples": [
[
8043964
]
],
"type": "array",
"items": {
"type": "integer"
}
},
"kubernetes_ids": {
"description": "An array containing the IDs of the Kubernetes clusters to which the firewall will allow traffic.",
"examples": [
[
"41b74c5d-9bd0-5555-5555-a57c495b81a3"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"load_balancer_uids": {
"description": "An array containing the IDs of the load balancers to which the firewall will allow traffic.",
"examples": [
[
"4de7ac8b-495b-4884-9a69-1050c6793cd6"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"allOf": [
{
"description": "A flat array of tag names as strings to be applied to the resource. Tag names must exist in order to be referenced in a request. <br><br>Requires `tag:create` and `tag:read` scopes.",
"examples": [
[
"base-image",
"prod"
]
],
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
{
"description": "An array containing the names of Tags corresponding to groups of Droplets to which the firewall will allow traffic.",
"examples": [
[
"frontend"
]
]
}
]
}
}
},
{
"description": "An object specifying locations to which outbound traffic that will be allowed."
}
]
}
}
}
]
}
}
}
}
]
},
{
"required": [
"name"
]
},
{
"anyOf": [
{
"title": "Inbound Rules",
"required": [
"inbound_rules"
]
},
{
"title": "Outbound Rules",
"required": [
"outbound_rules"
]
}
]
}
]
}Variants§
Variant0
Fields
created_at: Option<DateTime<Utc>>A time value given in ISO8601 combined date and time format that represents when the firewall was created.
droplet_ids: Option<Vec<i64>>An array containing the IDs of the Droplets assigned to the firewall.
Requires droplet:read scope.
inbound_rules: Option<Vec<FirewallsCreateBodyVariant0InboundRulesItem>>name: FirewallsCreateBodyVariant0NameA human-readable name for a firewall. The name must begin with an alphanumeric character. Subsequent characters must either be alphanumeric characters, a period (.), or a dash (-).
pending_changes: Vec<FirewallsCreateBodyVariant0PendingChangesItem>An array of objects each containing the fields “droplet_id”, “removing”, and “status”. It is provided to detail exactly which Droplets are having their security policies updated. When empty, all changes have been successfully applied.
status: Option<FirewallsCreateBodyVariant0Status>A status string indicating the current state of the firewall. This can be “waiting”, “succeeded”, or “failed”.
Variant1
Fields
created_at: Option<DateTime<Utc>>A time value given in ISO8601 combined date and time format that represents when the firewall was created.
droplet_ids: Option<Vec<i64>>An array containing the IDs of the Droplets assigned to the firewall.
Requires droplet:read scope.
name: FirewallsCreateBodyVariant1NameA human-readable name for a firewall. The name must begin with an alphanumeric character. Subsequent characters must either be alphanumeric characters, a period (.), or a dash (-).
outbound_rules: Option<Vec<FirewallsCreateBodyVariant1OutboundRulesItem>>pending_changes: Vec<FirewallsCreateBodyVariant1PendingChangesItem>An array of objects each containing the fields “droplet_id”, “removing”, and “status”. It is provided to detail exactly which Droplets are having their security policies updated. When empty, all changes have been successfully applied.
status: Option<FirewallsCreateBodyVariant1Status>A status string indicating the current state of the firewall. This can be “waiting”, “succeeded”, or “failed”.
Trait Implementations§
Source§impl Clone for FirewallsCreateBody
impl Clone for FirewallsCreateBody
Source§fn clone(&self) -> FirewallsCreateBody
fn clone(&self) -> FirewallsCreateBody
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more