openapi: 3.2.0 info: contact: email: support@linode.com name: Linode url: https://linode.com description: Add a Cloud Computing instance so you can build, release, and scale applications faster with virtual machines. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: 'Akamai: Linode Firewalls API' version: 4.215.0 servers: - url: https://api.linode.com tags: - description: Use these operations to manage the firewalls applied to your Linodes. name: Firewalls paths: /{apiVersion}/linode/instances/{linodeId}/firewalls: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: The ID of the Linode. example: '{{linodeId}}' in: path name: linodeId required: true schema: example: 234 type: integer x-akamai: file-path: parameters/linode-id-path-177e235a.yaml x-akamai: file-path: paths/linode-firewalls.yaml path-info: /{apiVersion}/linode/instances/{linodeId}/firewalls x-linode-cli-command: linodes get: description: 'View Firewall information for Firewalls assigned to this Linode. > --- - __CLI__. ``` linode-cli linodes firewalls-list 123 ``` Learn more... - __OAuth scopes__. ``` linodes:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-linode-firewalls operationId: get-linode-firewalls parameters: - description: The page of a collection to return. example: '{{page}}' in: query name: page required: false schema: default: 1 example: 6 minimum: 1 type: integer x-akamai: file-path: parameters/page-offset.yaml - description: The number of items to return per page. example: '{{page_size}}' in: query name: page_size schema: default: 100 example: 50 maximum: 500 minimum: 25 type: integer x-akamai: file-path: parameters/page-size.yaml responses: '200': content: application/json: schema: additionalProperties: false properties: data: items: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml type: array page: description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer pages: description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer results: description: __Read-only__ The total number of results. example: 1 readOnly: true type: integer type: object x-akamai: file-path: schemas/added-get-linode-firewalls-200.yaml x-example: x-ref: ../examples/get-linode-firewalls-200.json description: Returns a paginated list of Firewalls assigned to this Linode. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - linodes:read_only summary: List a Linode's firewalls tags: - Firewalls x-akamai: tabs: - syntax: linode-cli linodes firewalls-list 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: linodes:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: firewalls-list x-linode-grant: read_only put: description: 'Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this Linode. > --- - __CLI__. ``` linode-cli linodes firewalls-update 123 \ --firewall_ids ''[1234]'' ``` Learn more... - __OAuth scopes__. ``` linodes:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-linode-firewalls operationId: put-linode-firewalls parameters: - description: The page of a collection to return. example: '{{page}}' in: query name: page required: false schema: default: 1 example: 6 minimum: 1 type: integer x-akamai: file-path: parameters/page-offset.yaml - description: The number of items to return per page. example: '{{page_size}}' in: query name: page_size schema: default: 100 example: 50 maximum: 500 minimum: 25 type: integer x-akamai: file-path: parameters/page-size.yaml requestBody: content: application/json: schema: additionalProperties: false description: Replace or remove firewalls IDs assigned to a Linode or NodeBalancer. properties: firewall_ids: description: A complete list of firewall IDs to assign to this Linode or NodeBalancer. This operation replaces any existing assignments. To remove all firewalls, pass an empty list, `[]`. example: - 1 - 2 items: type: integer minItems: 0 type: array required: - firewall_ids type: object x-akamai: file-path: schemas/firewall-ids-request.yaml x-example: x-ref: ../examples/get-linode-firewalls-200.json required: true responses: '200': content: application/json: schema: additionalProperties: false properties: data: items: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml type: array page: description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer pages: description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer results: description: __Read-only__ The total number of results. example: 1 readOnly: true type: integer type: object x-akamai: file-path: schemas/added-get-linode-firewalls-200.yaml x-example: x-ref: ../examples/get-linode-firewalls-200.json description: Returns a paginated list of Firewalls assigned to this Linode. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - linodes:read_write summary: Update a Linode's firewalls tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli linodes firewalls-update 123 \\\n --firewall_ids '[1234]'" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: linodes:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: firewalls-update x-linode-grant: read_write /{apiVersion}/linode/instances/{linodeId}/firewalls/apply: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: The ID of the Linode. example: '{{linodeId}}' in: path name: linodeId required: true schema: example: 234 type: integer x-akamai: file-path: parameters/linode-id-path-820d9f86.yaml x-akamai: file-path: paths/apply-firewalls.yaml path-info: /{apiVersion}/linode/instances/{linodeId}/firewalls/apply x-linode-cli-command: linodes post: description: 'Reapply assigned firewalls to a Linode in case they were not applied successfully. The `firewall_apply` event indicates if the firewalls were applied. > --- - __CLI__. ``` linode-cli linodes apply-firewalls 123 ``` Learn more... - __OAuth scopes__. ``` linodes:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/post-apply-firewalls operationId: post-apply-firewalls responses: '200': content: application/json: schema: description: The API responds with an empty object. maxProperties: 0 type: object x-akamai: file-path: schemas/added-empty-obj.yaml x-example: x-ref: ../examples/post-apply-firewalls-linode-instance-200.json description: Applying firewalls started. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - linodes:read_write summary: Apply a Linode's firewalls tags: - Firewalls x-akamai: tabs: - syntax: linode-cli linodes apply-firewalls 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: linodes:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth /{apiVersion}/networking/firewalls: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml x-akamai: file-path: paths/networking-firewalls.yaml path-info: /{apiVersion}/networking/firewalls x-linode-cli-command: firewalls post: description: 'Creates a Firewall to filter network traffic. - Use `rules` to create inbound and outbound access rules. Rule versions increment from `1` whenever the firewall''s `rules` change. - Use `devices` to assign a firewall to a service such as a Linode that is using legacy config profiles, a Linode interface or a NodeBalancer. The firewall’s rules are then applied to that service. Requires a `read_write` user grant to the device. - For Linodes using Linode interfaces, firewalls need to be assigned to `interfaces` and not the `linodes`. Firewall templates are available for both VPC Linode interfaces and public Linode interfaces, and come with pre-configured protection rules. - For Linodes using legacy configuration profiles, firewalls are applied through the Linode. Public and VPC interfaces are subject to the firewall rules, while VLAN interfaces are not. - Currently, firewalls can be assigned to Linodes with legacy configuration profiles, Linode interfaces, and NodeBalancers. - The same firewall can be assigned to multiple services at a time. - Use `firewall_id` to assign a firewall when creating a Linode or when adding a Linode interface. - A service can have one assigned firewall enabled at a time. - Assigned Linodes must not have any ongoing live migrations. - A `firewall_create` event is generated when this operation succeeds. > --- - __CLI__. ``` linode-cli firewalls create \ --label example-firewall \ --rules.outbound_policy ACCEPT \ --rules.inbound_policy DROP \ --rules.inbound ''[{"protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128"]}, "action": "ACCEPT"}]'' \ --rules.outbound ''[{"protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"],"ipv6": ["2001:DB8::/128"]}, "action": "DROP", "label": "outbound-rule123", "description": "An example outbound rule description."}]'' ``` Learn more... - __OAuth scopes__. ``` firewall:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/post-firewalls operationId: post-firewalls requestBody: content: application/json: schema: allOf: - additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml properties: devices: additionalProperties: false description: 'Devices to create for this firewall. When a device is created, the firewall is assigned to its associated service. Currently, devices can be created for Linodes using legacy configuration profiles, Linode interfaces, and NodeBalancers. Firewall devices can''t be created for individual legacy configuration profile interfaces. Additional devices can be assigned after Firewall creation by using the [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) operation.' properties: linode_interfaces: description: An array of Linode interface IDs. A firewall device is created for each ID. For Linodes using Linode interfaces, firewalls need to be assigned to Linode interfaces and not the Linode. example: - 321 items: type: integer type: array linodes: description: An array of Linode IDs. A firewall device is created for each ID. These Linodes can't use Linode interfaces. example: - 123 - 456 items: type: integer type: array nodebalancers: description: 'An array containing a NodeBalancer ID. A Firewall device is created for the ID. - A NodeBalancer can have only one Firewall assigned to it. - Firewalls only apply to inbound TCP traffic to NodeBalancers.' example: - 321 items: type: integer type: array type: object rules: additionalProperties: false properties: inbound: required: - action - addresses - protocol outbound: required: - action - addresses - protocol required: - inbound_policy - outbound_policy required: - label - rules x-akamai: file-path: schemas/added-post-firewalls.yaml x-example: x-ref: ../examples/post-firewalls.json description: Creates a firewall object that can be applied to a service to filter the service's network traffic. responses: '200': content: application/json: schema: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml x-example: x-ref: ../examples/post-firewalls-200.json description: Returns information about the created Firewall. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_write summary: Create a firewall tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli firewalls create \\\n --label example-firewall \\\n --rules.outbound_policy ACCEPT \\\n --rules.inbound_policy DROP \\\n --rules.inbound '[{\"protocol\": \"TCP\", \"ports\": \"22, 80, 8080, 443\", \"addresses\": {\"ipv4\": [\"192.0.2.0/24\", \"198.51.100.2/32\"], \"ipv6\": [\"2001:DB8::/128\"]}, \"action\": \"ACCEPT\"}]' \\\n --rules.outbound '[{\"protocol\": \"TCP\", \"ports\": \"49152-65535\", \"addresses\": {\"ipv4\": [\"192.0.2.0/24\", \"198.51.100.2/32\"],\"ipv6\": [\"2001:DB8::/128\"]}, \"action\": \"DROP\", \"label\": \"outbound-rule123\", \"description\": \"An example outbound rule description.\"}]'" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: create x-linode-grant: add_firewalls get: description: 'Returns a paginated list of accessible Firewalls. > --- - __CLI__. ``` linode-cli firewalls list ``` Learn more... - __OAuth scopes__. ``` firewall:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-firewalls operationId: get-firewalls parameters: - description: The page of a collection to return. example: '{{page}}' in: query name: page required: false schema: default: 1 example: 6 minimum: 1 type: integer x-akamai: file-path: parameters/page-offset.yaml - description: The number of items to return per page. example: '{{page_size}}' in: query name: page_size schema: default: 100 example: 50 maximum: 500 minimum: 25 type: integer x-akamai: file-path: parameters/page-size.yaml responses: '200': content: application/json: example: created: '2025-05-01T15:12:51' entities: - id: 5000 label: linode5000 parent_entity: null type: linode url: /v4/linode/instances/5000 - id: 2 label: null parent_entity: id: 5000 label: linode5000 parent_entity: null type: linode url: /v4/linode/instances/5000 type: interface url: /v4/linode/instances/506963/interfaces/2 - id: 6 label: null parent_entity: id: 5000 label: linode506969 parent_entity: null type: linode url: /v4/linode/instances/506969 type: interface url: /v4/linode/instances/506969/interfaces/6 id: 1 label: myfw rules: fingerprint: 9eb911da inbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 198.51.100.2/32 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP inbound_policy: DROP outbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 198.51.100.2/32 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP outbound_policy: ACCEPT version: 1 status: enabled tags: [] updated: '2025-05-01T15:12:51' schema: additionalProperties: false properties: data: items: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml type: array page: description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer pages: description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer results: description: __Read-only__ The total number of results. example: 1 readOnly: true type: integer type: object x-akamai: file-path: schemas/added-get-firewalls-200.yaml description: Returns an array of Firewalls. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_only summary: List firewalls tags: - Firewalls x-akamai: tabs: - syntax: linode-cli firewalls list title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: - list - ls x-linode-grant: read_only /{apiVersion}/networking/firewalls/{firewallId}: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: ID of the Firewall to access. example: '{{firewallId}}' in: path name: firewallId required: true schema: example: 9000 type: integer x-akamai: file-path: parameters/firewall-id.yaml x-akamai: file-path: paths/firewall.yaml path-info: /{apiVersion}/networking/firewalls/{firewallId} x-linode-cli-command: firewalls get: description: 'Get a specific Firewall resource by its ID. The Firewall''s Devices will not be returned in the response. Instead, run the List firewall devices operation to review them. > --- - __CLI__. ``` linode-cli firewalls view 123 ``` Learn more... - __OAuth scopes__. ``` firewall:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-firewall operationId: get-firewall responses: '200': content: application/json: schema: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml x-example: x-ref: ../examples/get-firewall-200.json description: Returns information about this Firewall. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_only summary: Get a firewall tags: - Firewalls x-akamai: tabs: - syntax: linode-cli firewalls view 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: view x-linode-grant: read_only put: description: 'Updates information for a firewall. - Assigned Linodes must not have any ongoing live migrations. - If this operation changes a firewall''s status, it generates a corresponding `firewall_enable` or `firewall_disable` event. This operation doesn''t affect some parts of a firewall''s configuration: - This operation doesn''t set a firewall''s devices. Instead, run the Create a firewall device and Delete a firewall device operations to assign and remove this firewall from services. - A firewall''s rules can''t be changed with this operation. Instead, run the Update firewall rules operation to update your rules. - Use this operation to set a firewall''s status to `enabled` or `disabled`. But to set it to `deleted`, run the Delete a firewall operation. - An assigned default firewall can''t be disabled. > --- - __CLI__. ``` linode-cli firewalls update 123 \ --status disabled ``` Learn more... - __OAuth scopes__. ``` firewall:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-firewall operationId: put-firewall requestBody: content: application/json: schema: additionalProperties: false properties: label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: '{{label}}' maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true status: description: "The status to be applied to this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - An assigned default firewall can't be disabled.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled example: '{{status}}' type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true type: object x-akamai: file-path: schemas/added-put-firewall.yaml x-example: x-ref: ../examples/put-firewall.json responses: '200': content: application/json: schema: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml x-example: x-ref: ../examples/get-firewall-200.json description: Firewall updated successfully. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_write summary: Update a firewall tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli firewalls update 123 \\\n --status disabled" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: update x-linode-grant: read_write delete: description: 'Delete a firewall. This also removes all of the firewall''s rules from any services the firewall was assigned to. - Assigned Linodes must not have any ongoing live migrations. - A `firewall_delete` event is generated when this operation returns successfully. - An assigned default firewall can''t be deleted. > --- - __CLI__. ``` linode-cli firewalls delete 123 ``` Learn more... - __OAuth scopes__. ``` firewall:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/delete-firewall operationId: delete-firewall responses: '200': content: application/json: schema: description: The API responds with an empty object. maxProperties: 0 type: object x-akamai: file-path: schemas/added-empty-obj.yaml x-example: x-ref: ../examples/delete-firewall-200.json description: Delete Successful. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_write summary: Delete a firewall tags: - Firewalls x-akamai: tabs: - syntax: linode-cli firewalls delete 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: - delete - rm x-linode-grant: read_write /{apiVersion}/networking/firewalls/{firewallId}/history: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: ID of the Firewall to access. example: '{{firewallId}}' in: path name: firewallId required: true schema: example: 9000 type: integer x-akamai: file-path: parameters/firewall-id.yaml x-akamai: file-path: paths/firewall-rule-versions.yaml path-info: /{apiVersion}/networking/firewalls/{firewallId}/history x-linode-cli-command: firewalls get: description: 'Lists the current and historical rules of the firewall (that is not deleted), using `version`. Whenever rules update, the `version` increments from `1`. > --- - __CLI__. ``` linode-cli firewalls versions-list 123 ``` Learn more... - __OAuth scopes__. ``` firewall:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-firewall-rule-versions operationId: get-firewall-rule-versions responses: '200': content: application/json: schema: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml x-example: x-ref: ../examples/get-firewall-200.json description: Returns information for all rule versions for this firewall. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_only summary: List firewall rule versions tags: - Firewalls x-akamai: tabs: - syntax: linode-cli firewalls versions-list 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: versions-list x-linode-grant: read_only /{apiVersion}/networking/firewalls/{firewallId}/history/rules/{version}: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: ID of the Firewall to access. example: '{{firewallId}}' in: path name: firewallId required: true schema: example: 9000 type: integer x-akamai: file-path: parameters/firewall-id.yaml - description: The firewall rule version to view. example: '{{version}}' in: path name: version required: true schema: example: 3 type: integer x-akamai: file-path: parameters/firewall-rule-version.yaml x-akamai: file-path: paths/firewall-rule-version.yaml path-info: /{apiVersion}/networking/firewalls/{firewallId}/history/rules/{version} x-linode-cli-command: firewalls get: description: 'Get a specific firewall rule version for an `enabled` or `disabled` firewall. > --- - __CLI__. ``` linode-cli firewalls version-view \ 123 2 ``` Learn more... - __OAuth scopes__. ``` firewall:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-firewall-rule-version operationId: get-firewall-rule-version responses: '200': content: application/json: schema: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml x-example: x-ref: ../examples/get-firewall-200.json description: Returns a rule version. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_only summary: Get a firewall rule version tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli firewalls version-view \\\n 123 2" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: version-view x-linode-grant: read_only /{apiVersion}/networking/firewalls/{firewallId}/rules: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: ID of the Firewall to access. example: '{{firewallId}}' in: path name: firewallId required: true schema: example: 9000 type: integer x-akamai: file-path: parameters/firewall-id.yaml x-akamai: file-path: paths/rules.yaml path-info: /{apiVersion}/networking/firewalls/{firewallId}/rules x-linode-cli-command: firewalls get: description: 'Returns the inbound and outbound Rules for a Firewall. > --- - __CLI__. ``` linode-cli firewalls rules-list 123 ``` Learn more... - __OAuth scopes__. ``` firewall:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-firewall-rules operationId: get-firewall-rules responses: '200': content: application/json: schema: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object x-example: x-ref: ../examples/get-firewall-rules-200.json x-linode-cli-subtables: - inbound - outbound description: The requested Firewall Rules. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_only summary: List firewall rules tags: - Firewalls x-akamai: tabs: - syntax: linode-cli firewalls rules-list 123 title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: rules-list x-linode-grant: read_only put: description: 'Updates the inbound and outbound Rules for a Firewall. - Assigned Linodes must not have any ongoing live migrations. - __Note__. This operation replaces all of a Firewall''s `inbound` and `outbound` rulesets with the values specified in your request. > --- - __CLI__. ``` linode-cli firewalls rules-update 123 \ --inbound ''[{"action":"ACCEPT", "protocol": "TCP", "ports": "22, 80, 8080, 443", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128"]}}]'' \ --outbound ''[{"action":"DROP","protocol": "TCP", "ports": "49152-65535", "addresses": {"ipv4": ["192.0.2.0/24", "198.51.100.2/32"], "ipv6": ["2001:DB8::/128`"]}}]'' ``` Learn more... - __OAuth scopes__. ``` firewall:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-firewall-rules operationId: put-firewall-rules requestBody: content: application/json: schema: allOf: - additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object properties: inbound: required: - action - addresses - protocol outbound: required: - action - addresses - protocol x-akamai: file-path: schemas/added-put-firewall-rules.yaml x-example: x-ref: ../examples/put-firewall-rules.json x-linode-cli-subtables: - inbound - outbound description: The Firewall Rules information to update. responses: '200': content: application/json: schema: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object x-example: x-ref: ../examples/get-firewall-rules-200.json x-linode-cli-subtables: - inbound - outbound description: Firewall Rules updated successfully. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - firewall:read_write summary: Update firewall rules tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli firewalls rules-update 123 \\\n --inbound '[{\"action\":\"ACCEPT\", \"protocol\": \"TCP\", \"ports\": \"22, 80, 8080, 443\", \"addresses\": {\"ipv4\": [\"192.0.2.0/24\", \"198.51.100.2/32\"], \"ipv6\": [\"2001:DB8::/128\"]}}]' \\\n --outbound '[{\"action\":\"DROP\",\"protocol\": \"TCP\", \"ports\": \"49152-65535\", \"addresses\": {\"ipv4\": [\"192.0.2.0/24\", \"198.51.100.2/32\"], \"ipv6\": [\"2001:DB8::/128`\"]}}]'" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: firewall:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: rules-update x-linode-grant: read_write /{apiVersion}/nodebalancers/{nodeBalancerId}/firewalls: parameters: - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta. example: '{{apiVersion}}' in: path name: apiVersion required: true schema: enum: - v4 - v4beta type: string x-akamai: file-path: parameters/api-version-path.yaml - description: The ID of the NodeBalancer. example: '{{nodeBalancerId}}' in: path name: nodeBalancerId required: true schema: type: integer x-akamai: file-path: parameters/node-balancer-id.yaml x-akamai: file-path: paths/node-balancer-firewalls.yaml path-info: /{apiVersion}/nodebalancers/{nodeBalancerId}/firewalls x-linode-cli-command: nodebalancers get: description: 'View information for Firewalls assigned to this NodeBalancer. > --- - __CLI__. ``` linode-cli nodebalancers firewalls $nodeBalancerId ``` Learn more... - __OAuth scopes__. ``` nodebalancers:read_only ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/get-node-balancer-firewalls operationId: get-node-balancer-firewalls responses: '200': content: application/json: example: data: - created: '2018-01-01T00:01:01' id: 123 label: firewall123 rules: inbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 192.0.2.167/24 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP inbound_policy: DROP outbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 192.0.2.1/24 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP outbound_policy: DROP status: enabled tags: - example tag - another example updated: '2018-01-02T00:01:01' page: 1 pages: 1 results: 1 schema: allOf: - additionalProperties: false description: An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information. properties: page: description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer pages: description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer results: description: __Read-only__ The total number of results. example: 1 readOnly: true type: integer type: object x-akamai: file-path: schemas/pagination-envelope.yaml - properties: data: items: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml type: array type: object x-akamai: file-path: schemas/added-get-node-balancer-firewalls-200.yaml description: Returns a paginated list of Firewalls assigned to this NodeBalancer. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - nodebalancers:read_only summary: List NodeBalancer firewalls tags: - Firewalls x-akamai: tabs: - syntax: linode-cli nodebalancers firewalls $nodeBalancerId title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_only title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: firewalls x-linode-grant: read_only put: description: 'Replace the current list of assigned firewalls with a new list, or provide an empty list to remove all firewalls from this NodeBalancer. > --- - __CLI__. ``` linode-cli nodebalancers firewalls-update 12345 \ --firewall_ids ''[1234, 4567]'' ``` Learn more... - __OAuth scopes__. ``` nodebalancers:read_write ``` Learn more...' externalDocs: description: See documentation for this operation in Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference/put-node-balancer-firewalls operationId: put-node-balancer-firewalls parameters: - description: The page of a collection to return. example: '{{page}}' in: query name: page required: false schema: default: 1 example: 6 minimum: 1 type: integer x-akamai: file-path: parameters/page-offset.yaml - description: The number of items to return per page. example: '{{page_size}}' in: query name: page_size schema: default: 100 example: 50 maximum: 500 minimum: 25 type: integer x-akamai: file-path: parameters/page-size.yaml requestBody: content: application/json: schema: additionalProperties: false description: Replace or remove firewalls IDs assigned to a Linode or NodeBalancer. properties: firewall_ids: description: A complete list of firewall IDs to assign to this Linode or NodeBalancer. This operation replaces any existing assignments. To remove all firewalls, pass an empty list, `[]`. example: - 1 - 2 items: type: integer minItems: 0 type: array required: - firewall_ids type: object x-akamai: file-path: schemas/firewall-ids-request.yaml x-example: x-ref: ../examples/put-node-balancer.json required: true responses: '200': content: application/json: example: data: - created: '2018-01-01T00:01:01' id: 123 label: firewall123 rules: inbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 192.0.2.167/24 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP inbound_policy: DROP outbound: - action: ACCEPT addresses: ipv4: - 192.0.2.0/24 - 192.0.2.1/24 ipv6: - 2001:DB8::/128 description: An example firewall rule description. label: firewallrule123 ports: 22-24, 80, 443 protocol: TCP outbound_policy: DROP status: enabled tags: - example tag - another example updated: '2018-01-02T00:01:01' page: 1 pages: 1 results: 1 schema: allOf: - additionalProperties: false description: An envelope for paginated response. When accessing a collection through a GET endpoint, the results are wrapped in this envelope which includes metadata about those results. Results are presented within a `data` array. See [Pagination](https://techdocs.akamai.com/linode-api/reference/pagination) for more information. properties: page: description: __Read-only__ The current [page](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer pages: description: __Read-only__ The total number of [pages](https://techdocs.akamai.com/linode-api/reference/pagination). example: 1 readOnly: true type: integer results: description: __Read-only__ The total number of results. example: 1 readOnly: true type: integer type: object x-akamai: file-path: schemas/pagination-envelope.yaml - properties: data: items: additionalProperties: false description: A resource that controls incoming and outgoing network traffic to a compute service. Only one enabled Firewall can be attached to a particular service at any given time. [Create a firewall device](https://techdocs.akamai.com/linode-api/reference/post-firewall-device) to assign a Firewall to a service. Currently, Firewalls can assigned to Linode compute instances and NodeBalancers. properties: created: description: __Filterable__, __Read-only__ When this Firewall was created. example: '2025-01-01T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 4 x-linode-filterable: true entities: description: __Read-only__ The Linodes, NodeBalancers, and Linode interfaces this firewall is assigned to. items: additionalProperties: false properties: id: description: The entity's ID. example: 123 type: integer label: description: __Read-only__ The entity's label. example: my-linode readOnly: true type: string parent_entity: additionalProperties: false description: __Read-only__ The Linode this `linode_interface` is assigned to. Returns `null` when the entity `type` is `linode` or `nodebalancer`. properties: id: description: The ID of the Linode assigned to this `linode_interface`. example: 5000 type: integer label: description: The name of the Linode this `linode_interface` is assigned to. example: linode5000 type: string parent_entity: description: __Read-only__ Currently, no parent entity has a parent of its own. Each `parent_entity` will have its own `parent_entity` set to `null`. example: null readOnly: true type: - string - 'null' type: description: A Linode interface’s `parent_entity` is a `linode`. enum: - linode example: linode type: string url: description: The API URL path you can use to access this entity. example: /v4/linode/instances/5000 format: url type: string readOnly: true type: - object - 'null' type: description: The entity's type. enum: - linode - linode_interface - nodebalancer example: linode_interface type: string url: description: __Read-only__ The API URL path you can use to access this entity. example: /v4/linode/instances/123 format: url readOnly: true type: string type: object readOnly: true type: array id: description: __Filterable__, __Read-only__ The Firewall's unique ID. example: 123 readOnly: true type: integer x-akamai: labels: - Filterable x-linode-cli-display: 1 x-linode-filterable: true label: description: "__Filterable__ The Firewall's label, for display purposes only.\n\nFirewall labels have the following constraints:\n\n - Must begin and end with an alphanumeric character.\n - May only consist of alphanumeric characters, hyphens (`-`), underscores (`_`) or periods (`.`).\n - Cannot have two hyphens (`--`), underscores (`__`) or periods (`..`) in a row.\n - Must be between 3 and 32 characters.\n - Must be unique." example: firewall123 maxLength: 32 minLength: 3 pattern: ^[a-zA-Z]((?!--|__|\.\.)[a-zA-Z0-9-_.])+$ type: string x-akamai: labels: - Filterable x-linode-cli-display: 2 x-linode-filterable: true rules: additionalProperties: false description: 'The inbound and outbound access rules to apply to the Firewall. A Firewall may have up to 25 rules across its inbound and outbound rulesets. Multiple rules are applied in order. If two rules conflict, the first rule takes precedence. For example, if the first rule accepts inbound traffic from an address, and the second rule drops inbound traffic the same address, the first rule applies and inbound traffic from that address is accepted.' properties: fingerprint: description: __Read-only__ The fingerprint is a 32-bit hash. It represents the firewall rules as an 8 character hex string. You can use `fingerprint` to compare rule versions. example: 997dd135 readOnly: true type: string inbound: description: The inbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json inbound_policy: description: The default behavior for inbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `inbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: DROP type: string outbound: description: The outbound rules for the firewall, as a JSON array. items: additionalProperties: false description: One of a Firewall's inbound or outbound access rules. The `ports` property can be used to allow traffic on a comma-separated list of different ports. properties: action: description: Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's `inbound_policy` if this is an inbound rule, or the `outbound_policy` if this is an outbound rule. enum: - ACCEPT - DROP example: ACCEPT type: string addresses: additionalProperties: false description: 'The IPv4 or IPv6 addresses affected by this rule. A rule can have up to 255 total addresses or networks listed across its `ipv4` and `ipv6` arrays. A network and a single IP are treated as equivalent when accounting for this limit. Must contain `ipv4`, `ipv6`, or both.' properties: ipv4: description: 'A list of IPv4 addresses or networks. Addresses must be in IP/mask format. Must not be an empty list. If `0.0.0.0/0` is included in this list, all IPv4 addresses are affected by this rule.' example: - 192.0.2.0/24 - 198.51.100.2/32 items: type: string type: array ipv6: description: 'A list of IPv6 addresses or networks. Addresses must be in IP/mask format and must not include zone_id notation as described in [RFC 4007](https://www.rfc-editor.org/rfc/rfc4007). Must not be an empty list. If `::/0` is included in this list, all IPv6 addresses are affected by this rule.' example: - 2001:DB8::/128 items: type: string type: array type: object description: description: Used to describe this rule. For display purposes only. example: An example firewall rule description. maxLength: 100 minLength: 1 type: string label: description: Used to identify this rule. For display purposes only. example: firewallrule123 maxLength: 32 minLength: 3 type: string ports: description: 'A string representing the port or ports affected by this rule: - The string may be a single port, a range of ports, or a comma-separated list of single ports and port ranges. A space is permitted following each comma. - A range of ports is inclusive of the start and end values for the range. The end value of the range must be greater than the start value. - Ports must be within 1 and 65535, and may not contain any leading zeroes. For example, port `080` is not allowed. - The ports string can have up to 15 _pieces_, where a single port is treated as one piece, and a port range is treated as two pieces. For example, the string "22-24, 80, 443" has four pieces. - If no ports are configured, all ports are affected. - Only allowed for the TCP and UDP protocols. Ports are not allowed for the ICMP and IPENCAP protocols.' example: 22-24, 80, 443 type: - string - 'null' protocol: description: The type of network traffic affected by this rule. enum: - TCP - UDP - ICMP - IPENCAP example: TCP type: string type: object x-akamai: file-path: schemas/firewall-rule-config.yaml type: array x-linode-cli-format: json outbound_policy: description: The default behavior for outbound traffic. This setting can be overridden by [updating](https://techdocs.akamai.com/linode-api/reference/put-firewall-rules) the `outbound.action` property of the Firewall Rule. enum: - ACCEPT - DROP example: ACCEPT type: string version: description: __Read-only__ The firewall's rule version. The first version is `1`. The version number is incremented when the firewall's rules change. example: 1 readOnly: true type: integer type: object status: description: "__Read-only__ The status of this Firewall.\n\n - When a Firewall is first created its status is `enabled`.\n - Run the [Update a firewall](https://techdocs.akamai.com/linode-api/reference/put-firewall) operation to set a Firewall's status to `enabled` or `disabled`.\n - Run the [Delete a firewall](https://techdocs.akamai.com/linode-api/reference/delete-firewall) operation to delete a Firewall." enum: - enabled - disabled - deleted example: enabled readOnly: true type: string x-linode-cli-display: 3 tags: description: __Filterable__ An array of tags applied to this object. Tags are for organizational purposes only. example: - example tag - another example items: type: string type: array x-akamai: labels: - Filterable x-linode-filterable: true updated: description: __Filterable__, __Read-only__ When this Firewall was last updated. example: '2025-01-02T00:01:01' format: date-time readOnly: true type: string x-akamai: labels: - Filterable x-linode-cli-display: 5 x-linode-filterable: true type: object x-akamai: file-path: schemas/firewall.yaml type: array type: object x-akamai: file-path: schemas/added-get-node-balancer-firewalls-200.yaml description: Returns a paginated list of Firewalls assigned to this NodeBalancer. default: content: application/json: schema: additionalProperties: false properties: errors: items: additionalProperties: false description: An object for describing a single error that occurred during the processing of a request. properties: field: description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request. example: fieldname type: string reason: description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully. example: fieldname must be a valid value type: string type: object x-akamai: file-path: schemas/error-object.yaml type: array type: object description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes. security: - personalAccessToken: [] - oauth: - nodebalancers:read_write summary: Update a NodeBalancer's firewalls tags: - Firewalls x-akamai: tabs: - syntax: "linode-cli nodebalancers firewalls-update 12345 \\\n --firewall_ids '[1234, 4567]'" title: CLI url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli - syntax: nodebalancers:read_write title: OAuth scopes url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth x-linode-cli-action: firewalls x-linode-grant: read_write components: securitySchemes: oauth: flows: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize scopes: account:read_only: Allows access to GET information about your account. account:read_write: Allows access to all endpoints related to your account. domains:read_only: Allows access to GET Domains on your account. domains:read_write: Allows access to all Domain endpoints. events:read_only: Allows access to GET your Events. events:read_write: Allows access to all endpoints related to your Events. firewall:read_only: Allows access to GET information about your Firewalls. firewall:read_write: Allows access to all Firewall endpoints. images:read_only: Allows access to GET your Images. images:read_write: Allows access to all endpoints related to your Images. ips:read_only: Allows access to GET your ips. ips:read_write: Allows access to all endpoints related to your ips. linodes:read_only: Allows access to GET Linodes on your account. linodes:read_write: Allow access to all endpoints related to your Linodes. lke:read_only: Allows access to GET LKE Clusters on your account. lke:read_write: Allows access to all endpoints related to LKE Clusters on your account. longview:read_only: Allows access to GET your Longview Clients. longview:read_write: Allows access to all endpoints related to your Longview Clients. monitor:read-write: Allows access to all Monitor (Akamai Cloud Pulse) endpoints. monitor:read_only: Allows access to Monitor (Akamai Cloud Pulse) data. nodebalancers:read_only: Allows access to GET NodeBalancers on your account. nodebalancers:read_write: Allows access to all NodeBalancer endpoints. object_storage:read_only: Allows access to GET information related to your Object Storage. object_storage:read_write: Allows access to all Object Storage endpoints. stackscripts:read_only: Allows access to GET your StackScripts. stackscripts:read_write: Allows access to all endpoints related to your StackScripts. volumes:read_only: Allows access to GET your Volumes. volumes:read_write: Allows access to all endpoints related to your Volumes. vpc:read_write: Allows access to all endpoints related to VPC and Subnet creation, updating, and deletion. tokenUrl: https://login.linode.com/oauth/token type: oauth2 personalAccessToken: scheme: bearer type: http externalDocs: description: See documentation for Akamai's Linode API url: https://techdocs.akamai.com/linode-api/reference x-readme: samples-languages: - curl - python - node