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))})