@startuml
title Get policies from fortigate

allowmixing

cloud fortigate
actor client
component SMC {
  class FortigatePoliciesAPIView {
    + get()
  }
  class GetFortigatePolicies {
    + perform_request()
  }
  class FortigatePoliciesSerializer {
    + serialize()
  }
}
client -down-> FortigatePoliciesAPIView: 1. Give me\nfortigate rules 
FortigatePoliciesAPIView -> GetFortigatePolicies: 2. Initialize operation
GetFortigatePolicies -up-> fortigate: 3. API request\nGET: cmdb/firewall/policy/
fortigate -down-> GetFortigatePolicies: 4. Response with policies
GetFortigatePolicies -right-> FortigatePoliciesAPIView: 5. Return API response\nfrom fortiagate to API view
FortigatePoliciesAPIView -down-> FortigatePoliciesSerializer: 6. Serialize API response\nfrom fortigate
FortigatePoliciesSerializer -up-> FortigatePoliciesAPIView: 7. Serialized\ndata
FortigatePoliciesAPIView -up-> client: 8. Serialized\nfortigate rules


@enduml