Farmer often uses references to link resouces, when this is not possible, Farmer uses certain types to define links.
A ResourceName represents a name of an ARM resource.
ResourceName "myapp"
A ResourceId identifies an ARM resource.
This is used when you want to link unmanaged resources to a deployment or have multiple deployment parts.
A ResourceId can be created with the resourceId member of a ResourceType:
let subnet = Arm.Network.virtualNetworks.resourceId(ResourceName "")
or directly as a ResourceId:
let mySubnet = {
Type = Arm.Network.subnets
Name = ResourceName "my-vnet"
ResourceGroup = Some("myResourceGroup")
Subscription = None
Segments = [ResourceName "mySubnet"]
}
These resource can be used i.e. in referencing a web app { }
to a subnet.
let webApp = webApp {
name "myWebApp"
service_plan_name "myServicePlan"
sku WebApp.Sku.B1
link_to_unmanaged_vnet mySubnet
}