deployment {

    paas edgeProvider 'Terraform Edge provider' {
        icon tech:terraform
        description "Unlocks the terraform ecosystem"
        -> edgeSdk "built using"
        -> terralist "published to"
        -> edp "hosted on"
    }

    environment edgeProviderHost 'OTC' {

        cluster edp 'Forgejo for all EDP-tenants' {
            icon tech:git
            instanceOf edp.forgejo 'Forgejo for all EDP-tenants' {
                description 'edp.buildth.ing'
            }
        }

        paas terralist 'Terralist' {
            icon tech:terraform
            description 'Terraform provider private hosting'
            technology 'Cloud Services'
            -> edp "authenticates via"
        }
    }

    paas edgeSdk 'Edge Cloud SDK' {
        icon tech:go
        description 'Wrapper around API'
        technology 'Cloud Services'
        -> edgeApi "calls"
        -> edp "hosted on"
    }

    environment edgeCloud 'Edge cloud' {

        paas edgeApi 'Edge Cloud API' {
            icon tech:swagger
            link https://swagger.edge.platform.mg3.mdb.osc.live "Documentation"
            technology 'Edge Cloud (managed)'
            -> edgeResources "creates/destroys"
        }

        paas edgeResources 'Edge Cloud Resources' {
            description 'App, AppInstance, etc.'
            technology 'Edge Cloud (managed)'
        }

    }
}

views {
  deployment view provider {
    title 'Terraform Edge provider'

    include
      edgeProviderHost,
      edp,
      edgeResources,
      edgeCloud,
      edgeApi,
      terralist,
      edgeSdk,
      edgeProvider,
  }
}

