def signed

near-v-framework@0.4.0.0 · domain/architecture/system/deployment/azure/effects.bend:105

import near-v-framework@0.4.0.0/domain/architecture/system/deployment/azure/effects.bend as Effects
import Base
import bend-net-json@0.3.0.0/json.bend as Json
import near-v-framework@0.4.0.0/domain/architecture/system/deployment/azure/type.bend as Az

105def signed(m: Maybe<&2, Json.Val>) -> IO(Az.Observed):
106  match m:
107    case None{}:
108      IO.pure(Az.Observed, Az.Observed{[], [], [], [], ["the signed-in Azure account"]})
109    case Some{+account}:
110      do IO<Az.Observed>:
111        rs : String <- az_run(["resource", "list", "--query", "[].{name:name,type:type,resourceGroup:resourceGroup}", "-o", "json"])
112        gs : String <- az_run(["group", "list", "--query", "[].name", "-o", "json"])
113        d : String <- devops()
114        +mr : Maybe<&2, Json.Val> = Json.parse(rs)
115        +mg : Maybe<&2, Json.Val> = Json.parse(gs)
116        +groups : List<&2, String> = strings(array(value(mg)))
117        permissions(string(at(account, "id")), groups,
118          Az.Observed{identities(string(at(account, "name")), d), resources(array(value(mr))), groups, [],
119            List.append(&2, String, unread_if("Azure resources", mr), unread_if("resource groups", mg))})

Uses (21)

Used by (1)