fortigate adapter¶
Inmanta module to manage fortigate
Features¶
The module supports all existing fortigate resources used for policies, networking rules and resources and resource management.
Environment variables¶
Env variable name  | 
Description  | 
|---|---|
FORTIGATE_API_TOKEN  | 
Fortigate api token, used as main credentials to interact with netbox.   | 
Defined by the user  | 
Fortigate Flex api username, used as main credentials to interact with Fortiflex.   | 
Defined by the user  | 
Fortigate Flex api password, used as main credentials to interact with Fortiflex.   | 
Usage example¶
This simple example shows how to create one interfac with one policy attached to the interface:
import fortigate
import fortigate::base
import fortigate::common
import fortigate::firewall_policy
api = fortigate::base::Api(
    token_env_var="FORTIGATE_API_TOKEN",
    base_url="https//example.com",
)
purged = false
policy = fortigate::Policy(
    dstaddr = [Dstaddr(name="all")],
    dstintf = [Dstintf(name="l2t.root")],
    logtraffic = "all",
    policyid=1,
    name = "test_policy_on_first_itf",
    schedule = "always",
    service = [Service(name="ALL")],
    srcaddr = [Srcaddr(name="all")],
    srcintf = [Srcintf(name=vlan_itf.name)],
    action = "accept",
    nat = 'disable',
    purged = purged,
    api = api,
)
if purged:
    policy.provides += vlan_itf
else:
    policy.requires += vlan_itf
end
vlan_itf = fortigate::Interface(
    name = "vlan_itf",
    interface = "port2",
    vlanid = 43,
    role = "lan",
    vdom = "root",
    purged = purged,
    api = api,
)