Reference For: developers, administrators

kyvernon firewall

The firewall command of the kyvernon CLI with its subcommands and arguments.

kyvernon firewall

Distributed firewall: groups, services, policies, rules, rollout, counters, logs

Usage
kyvernon firewall <COMMAND>

Subcommands: groups, services, policies, rules, effective, open-port, templates, mode, monitor, stats, simulate, realization, logs, profiles, settings, tag-categories, vnic-profile, bypass

kyvernon firewall groups

Security groups: tag criteria, VMs, vNICs, networks, prefixes and nested groups

Usage
kyvernon firewall groups <COMMAND>

Subcommands: list, show, create, update, delete, members

kyvernon firewall groups list

List groups

Usage
kyvernon firewall groups list [OPTIONS]
ArgumentDescriptionRequired
--tenantTenant (tenant-N); default: the provider's (a tenant user: its own)

API operation: GET /v1/firewall/groups

kyvernon firewall groups show

One group

Usage
kyvernon firewall groups show <ID>
ArgumentDescriptionRequired
<ID>Group id (fwgroup-N)yes

API operation: GET /v1/firewall/groups/{id}

kyvernon firewall groups create

Create a group

Usage
kyvernon firewall groups create [OPTIONS]
ArgumentDescriptionRequired
--nameName (unique in its scope; sys: is reserved)
--descriptionDescription
--criterionTag criterion category=value[,category=value]: a vNIC is a member when its VM has every tag of one criterion (repeat for alternatives)
--vmEvery vNIC of this VM (repeat)
--vnicThis vNIC, vm-N:nic-key (repeat)
--networkEvery vNIC on this host-bridge network (repeat)
--macEvery vNIC with this MAC address (repeat)
--prefixAddress or prefix outside the platform (repeat)
--groupNested group fwgroup-N (repeat)
--sharedVisible to tenants by name (a provider group)
values true, false
--tenantTenant of the new group
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/groups

kyvernon firewall groups update

Change a group: the flags given replace those fields (a list flag replaces the whole list), the rest stays. --body replaces the group

Usage
kyvernon firewall groups update [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Group idyes
--nameName (unique in its scope; sys: is reserved)
--descriptionDescription
--criterionTag criterion category=value[,category=value]: a vNIC is a member when its VM has every tag of one criterion (repeat for alternatives)
--vmEvery vNIC of this VM (repeat)
--vnicThis vNIC, vm-N:nic-key (repeat)
--networkEvery vNIC on this host-bridge network (repeat)
--macEvery vNIC with this MAC address (repeat)
--prefixAddress or prefix outside the platform (repeat)
--groupNested group fwgroup-N (repeat)
--sharedVisible to tenants by name (a provider group)
values true, false
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/groups/{id}

kyvernon firewall groups delete

Delete a group (refused while it is referenced)

Usage
kyvernon firewall groups delete [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Group idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/groups/{id}

kyvernon firewall groups members

Resolved members of a group: vNICs and addresses

Usage
kyvernon firewall groups members <ID>
ArgumentDescriptionRequired
<ID>Group idyes

API operation: GET /v1/firewall/groups/{id}/members

kyvernon firewall services

Named services (protocol and port sets)

Usage
kyvernon firewall services <COMMAND>

Subcommands: list, show, create, update, delete

kyvernon firewall services list

List services

Usage
kyvernon firewall services list [OPTIONS]
ArgumentDescriptionRequired
--tenantTenant (tenant-N)

API operation: GET /v1/firewall/services

kyvernon firewall services show

One service

Usage
kyvernon firewall services show <ID>
ArgumentDescriptionRequired
<ID>Service id (fwsvc-N)yes

API operation: GET /v1/firewall/services/{id}

kyvernon firewall services create

Create a service

Usage
kyvernon firewall services create [OPTIONS]
ArgumentDescriptionRequired
--nameName
--descriptionDescription
--entryEntry proto[:detail]: tcp:22,443, udp:53, icmp4:8, icmp6:128, ip:47 (repeat)
--tenantTenant of the new service
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/services

kyvernon firewall services update

Change a service (flags replace the fields they name; --body replaces the service)

Usage
kyvernon firewall services update [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Service idyes
--nameName
--descriptionDescription
--entryEntry proto[:detail]: tcp:22,443, udp:53, icmp4:8, icmp6:128, ip:47 (repeat)
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/services/{id}

kyvernon firewall services delete

Delete a service

Usage
kyvernon firewall services delete [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Service idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/services/{id}

kyvernon firewall policies

Policies (a category, an order and rules)

Usage
kyvernon firewall policies <COMMAND>

Subcommands: list, show, create, update, delete

kyvernon firewall policies list

List policies

Usage
kyvernon firewall policies list [OPTIONS]
ArgumentDescriptionRequired
--tenantTenant (tenant-N)

API operation: GET /v1/firewall/policies

kyvernon firewall policies show

One policy with its rules

Usage
kyvernon firewall policies show <ID>
ArgumentDescriptionRequired
<ID>Policy id (fwpolicy-N)yes

API operation: GET /v1/firewall/policies/{id}

kyvernon firewall policies create

Create a policy (rules are added with rules add, or come from --body)

Usage
kyvernon firewall policies create [OPTIONS]
ArgumentDescriptionRequired
--nameName (unique in its scope)
--categoryCategory
values emergency, infrastructure, environment, application
--sequenceOrder inside the category (lower first; default: after the last policy)
--statefulReplies are allowed automatically (default true)
values true, false
--applied-toGroup the policy applies to (repeat; none: every vNIC, a tenant's: its own)
--enabledEnabled (default true)
values true, false
--tenantTenant of the new policy
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/policies

kyvernon firewall policies update

Change a policy; the rules stay unless --body carries rules

Usage
kyvernon firewall policies update [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Policy idyes
--nameName (unique in its scope)
--categoryCategory
values emergency, infrastructure, environment, application
--sequenceOrder inside the category (lower first; default: after the last policy)
--statefulReplies are allowed automatically (default true)
values true, false
--applied-toGroup the policy applies to (repeat; none: every vNIC, a tenant's: its own)
--enabledEnabled (default true)
values true, false
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/policies/{id}

kyvernon firewall policies delete

Delete a policy with its rules

Usage
kyvernon firewall policies delete [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Policy idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/policies/{id}

kyvernon firewall rules

Rules of a policy

Usage
kyvernon firewall rules <COMMAND>

Subcommands: list, show, add, update, delete, move

kyvernon firewall rules list

List the rules of a policy

Usage
kyvernon firewall rules list [OPTIONS]
ArgumentDescriptionRequired
--policyPolicy idyes

API operation: GET /v1/firewall/policies/{id}/rules

kyvernon firewall rules show

One rule (id or number)

Usage
kyvernon firewall rules show [OPTIONS] <RULE>
ArgumentDescriptionRequired
<RULE>Rule id or numberyes
--policyPolicy idyes

API operation: GET /v1/firewall/policies/{id}/rules/{rid}

kyvernon firewall rules add

Add a rule

Usage
kyvernon firewall rules add [OPTIONS]
ArgumentDescriptionRequired
--policyPolicy idyes
--nameDisplay name
--actionAction
values allow, drop, reject, pass
--directionDirection relative to the vNIC (default in-out)
values in, out, in-out
--sourceSource: group id, address or prefix (repeat; none: any)
--sources-negatedMatch everything except the sources
values true, false
--destinationDestination: group id, address or prefix (repeat; none: any)
--destinations-negatedMatch everything except the destinations
values true, false
--serviceService proto[:detail] such as tcp:22,443, or named:fwsvc-N (repeat; none: any IP traffic)
--logLog matches
values true, false
--applied-toGroup the rule applies to (repeat; none: the policy's)
--enabledEnabled (default true)
values true, false
--ip-versionIP families (default any)
values any, v4, v6
--positionPosition in the policy (0 first; default: last)
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/policies/{id}/rules

kyvernon firewall rules update

Change a rule: the flags given replace those fields

Usage
kyvernon firewall rules update [OPTIONS] <RULE>
ArgumentDescriptionRequired
<RULE>Rule id or numberyes
--policyPolicy idyes
--nameDisplay name
--actionAction
values allow, drop, reject, pass
--directionDirection relative to the vNIC (default in-out)
values in, out, in-out
--sourceSource: group id, address or prefix (repeat; none: any)
--sources-negatedMatch everything except the sources
values true, false
--destinationDestination: group id, address or prefix (repeat; none: any)
--destinations-negatedMatch everything except the destinations
values true, false
--serviceService proto[:detail] such as tcp:22,443, or named:fwsvc-N (repeat; none: any IP traffic)
--logLog matches
values true, false
--applied-toGroup the rule applies to (repeat; none: the policy's)
--enabledEnabled (default true)
values true, false
--ip-versionIP families (default any)
values any, v4, v6
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/policies/{id}/rules/{rid}

kyvernon firewall rules delete

Delete a rule

Usage
kyvernon firewall rules delete [OPTIONS] <RULE>
ArgumentDescriptionRequired
<RULE>Rule id or numberyes
--policyPolicy idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/policies/{id}/rules/{rid}

kyvernon firewall rules move

Move a rule inside its policy

Usage
kyvernon firewall rules move [OPTIONS] <RULE>
ArgumentDescriptionRequired
<RULE>Rule id or numberyes
--policyPolicy idyes
--positionNew position (0 first; beyond the end: last)yes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/policies/{id}/rules/{rid}/move

kyvernon firewall effective

Effective rules of a VM's vNICs in evaluation order, with counters

Usage
kyvernon firewall effective [OPTIONS] <VM>
ArgumentDescriptionRequired
<VM>VM idyes
--nicOnly this vNIC (NIC key, e.g. 4000)

API operation: GET /v1/vms/{id}/firewall

kyvernon firewall open-port

Open a port of a VM: an inbound allow rule in the VM's own policy

Usage
kyvernon firewall open-port [OPTIONS] <VM>
ArgumentDescriptionRequired
<VM>VM idyes
--tcpTCP port or range to open, e.g. 443 or 8000-8100 (repeat)
--udpUDP port or range to open (repeat)
--fromSource allowed: address or prefix (repeat; none: any)
--ip-versionIP families
values any, v4, v6
--nameRule name (default open <protocol> <ports>)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/vms/{id}/firewall/open-port

kyvernon firewall templates

Rule templates (ssh-only, web, mail-server)

Usage
kyvernon firewall templates <COMMAND>

Subcommands: list, show, set, delete, apply

kyvernon firewall templates list

List the templates with the rules they add

Usage
kyvernon firewall templates list

API operation: GET /v1/firewall/templates

kyvernon firewall templates show

Show one template

Usage
kyvernon firewall templates show <TEMPLATE>
ArgumentDescriptionRequired
<TEMPLATE>Template idyes

API operation: GET /v1/firewall/templates/{id}

kyvernon firewall templates set

Create or replace a provider template from a JSON body ({description, note, rules: [{name, services, from, ipVersion}]})

Usage
kyvernon firewall templates set [OPTIONS] <TEMPLATE>
ArgumentDescriptionRequired
<TEMPLATE>Template idyes
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/templates/{id}

kyvernon firewall templates delete

Delete a provider template

Usage
kyvernon firewall templates delete [OPTIONS] <TEMPLATE>
ArgumentDescriptionRequired
<TEMPLATE>Template idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/templates/{id}

kyvernon firewall templates apply

Apply a template to a VM (a task)

Usage
kyvernon firewall templates apply [OPTIONS] <TEMPLATE> <VM>
ArgumentDescriptionRequired
<TEMPLATE>Template idyes
<VM>VM idyes
--waitWait for the task to finish and print it

API operation: POST /v1/firewall/templates/{id}/apply

kyvernon firewall mode

Switch the firewall mode of a VM's vNICs (off, monitor, enforce), or confirm a switch that waits for confirmation

Usage
kyvernon firewall mode [OPTIONS] [VM] [MODE] <COMMAND>
ArgumentDescriptionRequired
<VM>VM id
<MODE>New mode
values off, monitor, enforce
--confirm-withinThe previous mode comes back unless mode confirm runs within this time (30s to 24h, e.g. 10m)
--nicOnly this vNIC (NIC key; repeat; default: every host-bridge vNIC of the VM)
--reasonWhy (kept in the event)
--waitWait for the task to finish and print it

API operation: POST /v1/vms/{id}/firewall/mode

Subcommands: confirm

kyvernon firewall mode confirm

Keep the new mode of a switch that waits for confirmation

Usage
kyvernon firewall mode confirm <VM>
ArgumentDescriptionRequired
<VM>VM idyes

API operation: POST /v1/vms/{id}/firewall/mode/confirm

kyvernon firewall monitor

What a VM's rules would have dropped in mode monitor, and a proposal

Usage
kyvernon firewall monitor <VM>
ArgumentDescriptionRequired
<VM>VM idyes

API operation: GET /v1/vms/{id}/firewall/monitor

kyvernon firewall stats

Hit counters of a policy's rules or of one rule number

Usage
kyvernon firewall stats [OPTIONS]
ArgumentDescriptionRequired
--policyCounters of every rule of this policy
--ruleCounters of this rule number

API operation: GET /v1/firewall/policies/{id}/stats

kyvernon firewall simulate

The verdict and deciding rule for a described packet at a vNIC

Usage
kyvernon firewall simulate [OPTIONS]
ArgumentDescriptionRequired
--vmVM idyes
--nicvNIC (NIC key; default: the VM's first host-bridge vNIC)
--inPacket arriving at the vNIC
--outPacket leaving the vNIC
--prototcp, udp, icmp4, icmp6 or a protocol number
default tcp
--portDestination port (TCP, UDP)
--icmp-typeICMP type
--icmp-codeICMP code
--peerThe other end's addressyes
--localThe vNIC's own address (default: its first address of the peer's family)
--stateConnection state
values new, established

API operation: POST /v1/firewall/simulate

kyvernon firewall realization

Realization per host: wanted and applied plan version, error, flows, preconditions

Usage
kyvernon firewall realization [OPTIONS]
ArgumentDescriptionRequired
--hostOnly this host

API operation: GET /v1/firewall/realization

kyvernon firewall logs

Firewall log records, newest first

Usage
kyvernon firewall logs [OPTIONS]
ArgumentDescriptionRequired
--vmOnly this VM's records
--hostOnly this host's records
--ruleOnly this rule number's records
--limitMost records (default 500, at most 5,000)

API operation: GET /v1/firewall/logs

kyvernon firewall profiles

Default profiles (the default actions and the baseline of a vNIC)

Usage
kyvernon firewall profiles <COMMAND>

Subcommands: list, show, create, set, delete

kyvernon firewall profiles list

List the profiles

Usage
kyvernon firewall profiles list

API operation: GET /v1/firewall/profiles

kyvernon firewall profiles show

One profile (every profile without an id)

Usage
kyvernon firewall profiles show [ID]
ArgumentDescriptionRequired
<ID>Profile id (public-default, private-default, closed, open or fwprofile-N)

API operation: GET /v1/firewall/profiles/{id}

kyvernon firewall profiles create

Create a provider profile (--name, --inbound and --outbound are required)

Usage
kyvernon firewall profiles create [OPTIONS]
ArgumentDescriptionRequired
--nameName
--inboundDefault action for traffic arriving at the vNIC
values allow, drop, reject
--outboundDefault action for traffic leaving the vNIC
values allow, drop, reject
--baselineBaseline policy id (none removes it)
--selectableTenants may choose it
values true, false
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: POST /v1/firewall/profiles

kyvernon firewall profiles set

Change a profile: the flags given replace those fields (a built-in profile is overridden, not deleted)

Usage
kyvernon firewall profiles set [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Profile idyes
--nameName
--inboundDefault action for traffic arriving at the vNIC
values allow, drop, reject
--outboundDefault action for traffic leaving the vNIC
values allow, drop, reject
--baselineBaseline policy id (none removes it)
--selectableTenants may choose it
values true, false
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/profiles/{id}

kyvernon firewall profiles delete

Delete a profile that no vNIC uses

Usage
kyvernon firewall profiles delete [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Profile idyes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: DELETE /v1/firewall/profiles/{id}

kyvernon firewall settings

Domain-wide firewall settings

Usage
kyvernon firewall settings <COMMAND>

Subcommands: show, set

kyvernon firewall settings show

Show the settings

Usage
kyvernon firewall settings show

API operation: GET /v1/firewall/settings

kyvernon firewall settings set

Change settings: the flags given replace those values

Usage
kyvernon firewall settings set [OPTIONS]
ArgumentDescriptionRequired
--log-rate-ppsLog rate per host, packets per second
--reject-rate-ppsReject answers per second per bridge
--flow-limit-per-bridgeFirewall flows per host bridge
--ct-limit-per-portConnection-tracking entries per vNIC
--monitor-report-daysDays a monitor report covers (1 to 90)
--enforce-newNew vNICs get mode enforce (stored; this release starts new vNICs in mode off)
values true, false
--bodyInline JSON body
--body-fileFile with the JSON body (- for stdin)
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/settings

kyvernon firewall tag-categories

Tag categories and whether they are provider-managed

Usage
kyvernon firewall tag-categories <COMMAND>

Subcommands: list, set

kyvernon firewall tag-categories list

List the tag categories

Usage
kyvernon firewall tag-categories list

API operation: GET /v1/firewall/tag-categories

kyvernon firewall tag-categories set

Mark a category provider-managed or not

Usage
kyvernon firewall tag-categories set [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Category id (category-N)yes
--provider-managedOnly the provider attaches its tags, and provider groups evaluate only such categories
values true, false
yes
--if-matchRecord version the write is based on (If-Match); a stale version fails with a conflict. Updates made with flags read the object first and use the version they read
--waitAnswer when the hosts concerned applied the change (?wait=realized); the hosts that did not in time are listed in pendingHosts and the exit code is 1
--wait-timeoutLongest --wait, in seconds (server default 30, at most 300)

API operation: PUT /v1/firewall/tag-categories/{id}

kyvernon firewall vnic-profile

Show or set the profile of one vNIC

Usage
kyvernon firewall vnic-profile [OPTIONS] <VM> <NIC>
ArgumentDescriptionRequired
<VM>VM idyes
<NIC>NIC key (e.g. 4000)yes
--profileSet this profile (a tenant user: a selectable one). Without --profile and --reset the vNIC's firewall is shown
--resetBack to the profile of the NIC kind

API operation: PUT /v1/vms/{id}/nics/{key}/firewall

kyvernon firewall bypass

Emergency bypass of a host for a limited time (needs Kyvernon.Firewall.Bypass)

Usage
kyvernon firewall bypass [OPTIONS] <COMMAND>
ArgumentDescriptionRequired
--hostHost id
--reasonWhy the host is opened (kept in the audit record)
--forHow long the bypass lasts, e.g. 30m (it expires by itself)
--waitWait for the task to finish and print it

API operation: POST /v1/firewall/bypass

Subcommands: list, remove

kyvernon firewall bypass list

The bypasses in force

Usage
kyvernon firewall bypass list

API operation: GET /v1/firewall/bypass

kyvernon firewall bypass remove

End a bypass now

Usage
kyvernon firewall bypass remove [OPTIONS] <ID>
ArgumentDescriptionRequired
<ID>Bypass idyes
--waitWait for the task to finish and print it

API operation: DELETE /v1/firewall/bypass/{id}

Version 0.1.