model {
    extend edp {
        container garm 'Garm Image' {
            icon tech:docker
            component garm 'Garm' {
                description 'Provisions runners for Forgejo'
                icon tech:go
            }

            component providerEdgeConnect 'Garm Provider for EdgeConnect' {
                icon tech:go
                description 'Acts as abstraction layer for EdgeConnect'
            }

            component providerKubernetes 'Garm Provider for Kubernetes' {
                icon tech:go
                description 'Acts as abstraction layer for Kubernetes'
            }

            garm -> providerEdgeConnect 'calls binary'
            garm -> providerKubernetes 'calls binary'
        }
    }
}
