Resources/mgmt-plane/L3N1YnNjcmlwdGlvbnMve30vcmVzb3VyY2Vncm91cHMve30vcHJvdmlkZXJzL21pY3Jvc29mdC5kZXZ0ZXN0bGFiL2xhYnMve30vZm9ybXVsYXMve30=/2018-09-15.xml (1,737 lines of code) (raw):
<?xml version='1.0' encoding='utf-8'?>
<CodeGen plane="mgmt-plane">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.devtestlab/labs/{}/formulas/{}" version="2018-09-15" swagger="mgmt-plane/devtestlabs/ResourceProviders/Microsoft.DevTestLab/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRGV2VGVzdExhYi9sYWJzL3tsYWJOYW1lfS9mb3JtdWxhcy97bmFtZX0=/V/MjAxOC0wOS0xNQ=="/>
<commandGroup name="lab formula">
<command name="show" version="2018-09-15" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.devtestlab/labs/{}/formulas/{}" version="2018-09-15" swagger="mgmt-plane/devtestlabs/ResourceProviders/Microsoft.DevTestLab/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRGV2VGVzdExhYi9sYWJzL3tsYWJOYW1lfS9mb3JtdWxhcy97bmFtZX0=/V/MjAxOC0wOS0xNQ=="/>
<argGroup name="">
<arg type="string" var="$Path.labName" options="lab-name" required="True" idPart="name">
<help short="The name of the lab."/>
</arg>
<arg type="string" var="$Path.name" options="name n" required="True" idPart="child_name_1">
<help short="The name of the formula."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="string" var="$Query.expand" options="expand">
<help short="Specify the $expand query. Example: 'properties($select=description)'"/>
</arg>
</argGroup>
<operation operationId="Formulas_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}">
<request method="get">
<path>
<param type="string" name="labName" arg="$Path.labName" required="True"/>
<param type="string" name="name" arg="$Path.name" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<param type="string" name="$expand" arg="$Query.expand"/>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2018-09-15""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.DevTestLab/labs/{}/formulas/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop readOnly="True" type="string" name="author"/>
<prop readOnly="True" type="dateTime" name="creationDate"/>
<prop type="string" name="description"/>
<prop type="object" name="formulaContent">
<prop type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="boolean" name="allowClaim">
<default value="false"/>
</prop>
<prop type="array<object>" name="artifacts">
<item type="object">
<prop type="string" name="artifactId"/>
<prop type="string" name="artifactTitle"/>
<prop type="string" name="deploymentStatusMessage"/>
<prop type="dateTime" name="installTime"/>
<prop type="array<object>" name="parameters">
<item type="object">
<prop type="string" name="name"/>
<prop type="string" name="value"/>
</item>
</prop>
<prop type="string" name="status"/>
<prop type="string" name="vmExtensionStatusMessage"/>
</item>
</prop>
<prop type="object" name="bulkCreationParameters">
<prop type="integer32" name="instanceCount"/>
</prop>
<prop type="dateTime" name="createdDate"/>
<prop type="string" name="customImageId"/>
<prop type="array<object>" name="dataDiskParameters">
<item type="object">
<prop type="object" name="attachNewDataDiskOptions">
<prop type="string" name="diskName"/>
<prop type="integer32" name="diskSizeGiB"/>
<prop type="string" name="diskType">
<enum>
<item value=""Premium""/>
<item value=""Standard""/>
<item value=""StandardSSD""/>
</enum>
</prop>
</prop>
<prop type="string" name="existingLabDiskId"/>
<prop type="string" name="hostCaching">
<enum>
<item value=""None""/>
<item value=""ReadOnly""/>
<item value=""ReadWrite""/>
</enum>
</prop>
</item>
</prop>
<prop type="boolean" name="disallowPublicIpAddress">
<default value="false"/>
</prop>
<prop type="string" name="environmentId"/>
<prop type="dateTime" name="expirationDate"/>
<prop type="object" name="galleryImageReference">
<prop type="string" name="offer"/>
<prop type="string" name="osType"/>
<prop type="string" name="publisher"/>
<prop type="string" name="sku"/>
<prop type="string" name="version"/>
</prop>
<prop type="boolean" name="isAuthenticationWithSshKey"/>
<prop type="string" name="labSubnetName"/>
<prop type="string" name="labVirtualNetworkId"/>
<prop type="object" name="networkInterface">
<prop type="string" name="dnsName"/>
<prop type="string" name="privateIpAddress"/>
<prop type="string" name="publicIpAddress"/>
<prop type="string" name="publicIpAddressId"/>
<prop type="string" name="rdpAuthority"/>
<prop type="object" name="sharedPublicIpAddressConfiguration">
<prop type="array<object>" name="inboundNatRules">
<item type="object">
<prop type="integer32" name="backendPort"/>
<prop type="integer32" name="frontendPort"/>
<prop type="string" name="transportProtocol">
<enum>
<item value=""Tcp""/>
<item value=""Udp""/>
</enum>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="sshAuthority"/>
<prop type="string" name="subnetId"/>
<prop type="string" name="virtualNetworkId"/>
</prop>
<prop type="string" name="notes"/>
<prop type="string" name="ownerObjectId">
<default value=""dynamicValue""/>
</prop>
<prop type="string" name="ownerUserPrincipalName"/>
<prop type="string" name="password" secret="True"/>
<prop type="string" name="planId"/>
<prop type="array<object>" name="scheduleParameters">
<item type="object">
<prop readOnly="True" type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="dailyRecurrence">
<prop type="string" name="time"/>
</prop>
<prop type="object" name="hourlyRecurrence">
<prop type="integer32" name="minute"/>
</prop>
<prop type="object" name="notificationSettings">
<prop type="string" name="emailRecipient"/>
<prop type="string" name="notificationLocale"/>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="timeInMinutes"/>
<prop type="string" name="webhookUrl"/>
</prop>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="string" name="targetResourceId"/>
<prop type="string" name="taskType"/>
<prop type="string" name="timeZoneId"/>
<prop type="object" name="weeklyRecurrence">
<prop type="string" name="time"/>
<prop type="array<string>" name="weekdays">
<item type="string"/>
</prop>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</item>
</prop>
<prop type="string" name="size"/>
<prop type="string" name="sshKey" secret="True"/>
<prop type="string" name="storageType">
<default value=""labStorageType""/>
</prop>
<prop type="string" name="userName"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="string" name="osType"/>
<prop readOnly="True" type="string" name="provisioningState"/>
<prop readOnly="True" type="string" name="uniqueIdentifier"/>
<prop type="object" name="vm">
<prop type="string" name="labVmId"/>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="delete" version="2018-09-15" confirmation="Are you sure you want to perform this operation?">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.devtestlab/labs/{}/formulas/{}" version="2018-09-15" swagger="mgmt-plane/devtestlabs/ResourceProviders/Microsoft.DevTestLab/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRGV2VGVzdExhYi9sYWJzL3tsYWJOYW1lfS9mb3JtdWxhcy97bmFtZX0=/V/MjAxOC0wOS0xNQ=="/>
<argGroup name="">
<arg type="string" var="$Path.labName" options="lab-name" required="True" idPart="name">
<help short="The name of the lab."/>
</arg>
<arg type="string" var="$Path.name" options="name n" required="True" idPart="child_name_1">
<help short="The name of the formula."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<operation operationId="Formulas_Delete">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}">
<request method="delete">
<path>
<param type="string" name="labName" arg="$Path.labName" required="True"/>
<param type="string" name="name" arg="$Path.name" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2018-09-15""/>
</const>
</query>
</request>
<response statusCode="200"/>
<response statusCode="204"/>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
</command>
<command name="create" version="2018-09-15">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.devtestlab/labs/{}/formulas/{}" version="2018-09-15" swagger="mgmt-plane/devtestlabs/ResourceProviders/Microsoft.DevTestLab/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRGV2VGVzdExhYi9sYWJzL3tsYWJOYW1lfS9mb3JtdWxhcy97bmFtZX0=/V/MjAxOC0wOS0xNQ=="/>
<argGroup name="">
<arg type="string" var="$Path.labName" options="lab-name" required="True" idPart="name">
<help short="The name of the lab."/>
</arg>
<arg type="string" var="$Path.name" options="name n" required="True" idPart="child_name_1">
<help short="The name of the formula."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<argGroup name="Formula">
<arg type="ResourceLocation" var="$formula.location" options="location l" group="Formula">
<help short="The location of the resource."/>
</arg>
<arg type="object" var="$formula.tags" options="tags" group="Formula">
<help short="The tags of the resource."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Properties">
<arg type="string" var="$formula.properties.description" options="description" group="Properties">
<help short="The description of the formula."/>
</arg>
<arg type="object" var="$formula.properties.formulaContent" options="formula-content" group="Properties">
<help short="The content of the formula."/>
<arg type="string" var="$formula.properties.formulaContent.location" options="location">
<help short="The location of the new virtual machine or environment"/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.name" options="name">
<help short="The name of the virtual machine or environment"/>
</arg>
<arg type="boolean" var="$formula.properties.formulaContent.properties.allowClaim" options="allow-claim" group="Properties">
<help short="Indicates whether another user can take ownership of the virtual machine"/>
<default value="false"/>
</arg>
<arg type="array<object>" var="$formula.properties.formulaContent.properties.artifacts" options="artifacts" group="Properties">
<help short="The artifacts to be installed on the virtual machine."/>
<item type="object">
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].artifactId" options="artifact-id">
<help short="The artifact's identifier."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].artifactTitle" options="artifact-title">
<help short="The artifact's title."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].deploymentStatusMessage" options="deployment-status-message">
<help short="The status message from the deployment."/>
</arg>
<arg type="dateTime" var="$formula.properties.formulaContent.properties.artifacts[].installTime" options="install-time">
<help short="The time that the artifact starts to install on the virtual machine."/>
</arg>
<arg type="array<object>" var="$formula.properties.formulaContent.properties.artifacts[].parameters" options="parameters">
<help short="The parameters of the artifact."/>
<item type="object">
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].parameters[].name" options="name">
<help short="The name of the artifact parameter."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].parameters[].value" options="value">
<help short="The value of the artifact parameter."/>
</arg>
</item>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].status" options="status">
<help short="The status of the artifact."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.artifacts[].vmExtensionStatusMessage" options="vm-extension-status-message">
<help short="The status message from the virtual machine extension."/>
</arg>
</item>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.bulkCreationParameters" options="bulk-creation-parameters" group="Properties">
<help short="The number of virtual machine instances to create."/>
<arg type="integer32" var="$formula.properties.formulaContent.properties.bulkCreationParameters.instanceCount" options="instance-count">
<help short="The number of virtual machine instances to create."/>
</arg>
</arg>
<arg type="dateTime" var="$formula.properties.formulaContent.properties.createdDate" options="created-date" group="Properties">
<help short="The creation date of the virtual machine."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.customImageId" options="custom-image-id" group="Properties">
<help short="The custom image identifier of the virtual machine."/>
</arg>
<arg type="array<object>" var="$formula.properties.formulaContent.properties.dataDiskParameters" options="data-disk-parameters" group="Properties">
<help short="New or existing data disks to attach to the virtual machine after creation"/>
<item type="object">
<arg type="object" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions" options="attach-new-data-disk-options">
<help short="Specifies options to attach a new disk to the virtual machine."/>
<arg type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskName" options="disk-name">
<help short="The name of the disk to be attached."/>
</arg>
<arg type="integer32" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskSizeGiB" options="disk-size-gi-b">
<help short="Size of the disk to be attached in Gibibytes."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskType" options="disk-type">
<help short="The storage type for the disk (i.e. Standard, Premium)."/>
<enum>
<item name="Premium" value=""Premium""/>
<item name="Standard" value=""Standard""/>
<item name="StandardSSD" value=""StandardSSD""/>
</enum>
</arg>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].existingLabDiskId" options="existing-lab-disk-id">
<help short="Specifies the existing lab disk id to attach to virtual machine."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].hostCaching" options="host-caching">
<help short="Caching option for a data disk (i.e. None, ReadOnly, ReadWrite)."/>
<enum>
<item name="None" value=""None""/>
<item name="ReadOnly" value=""ReadOnly""/>
<item name="ReadWrite" value=""ReadWrite""/>
</enum>
</arg>
</item>
</arg>
<arg type="boolean" var="$formula.properties.formulaContent.properties.disallowPublicIpAddress" options="disallow-public-ip-address" group="Properties">
<help short="Indicates whether the virtual machine is to be created without a public IP address."/>
<default value="false"/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.environmentId" options="environment-id" group="Properties">
<help short="The resource ID of the environment that contains this virtual machine, if any."/>
</arg>
<arg type="dateTime" var="$formula.properties.formulaContent.properties.expirationDate" options="expiration-date" group="Properties">
<help short="The expiration date for VM."/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.galleryImageReference" options="gallery-image-reference" group="Properties">
<help short="The Microsoft Azure Marketplace image reference of the virtual machine."/>
<arg type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.offer" options="offer">
<help short="The offer of the gallery image."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.osType" options="os-type">
<help short="The OS type of the gallery image."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.publisher" options="publisher">
<help short="The publisher of the gallery image."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.sku" options="sku">
<help short="The SKU of the gallery image."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.version" options="version">
<help short="The version of the gallery image."/>
</arg>
</arg>
<arg type="boolean" var="$formula.properties.formulaContent.properties.isAuthenticationWithSshKey" options="is-authentication-with-ssh-key" group="Properties">
<help short="Indicates whether this virtual machine uses an SSH key for authentication."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.labSubnetName" options="lab-subnet-name" group="Properties">
<help short="The lab subnet name of the virtual machine."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.labVirtualNetworkId" options="lab-virtual-network-id" group="Properties">
<help short="The lab virtual network identifier of the virtual machine."/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.networkInterface" options="network-interface" group="Properties">
<help short="The network interface properties."/>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.dnsName" options="dns-name">
<help short="The DNS name."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.privateIpAddress" options="private-ip-address">
<help short="The private IP address."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.publicIpAddress" options="public-ip-address">
<help short="The public IP address."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.publicIpAddressId" options="public-ip-address-id">
<help short="The resource ID of the public IP address."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.rdpAuthority" options="rdp-authority">
<help short="The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol)."/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration" options="shared-public-ip-address-configuration">
<help short="The configuration for sharing a public IP address across multiple virtual machines."/>
<arg type="array<object>" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules" options="inbound-nat-rules">
<help short="The incoming NAT rules"/>
<item type="object">
<arg type="integer32" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].backendPort" options="backend-port">
<help short="The port to which the external traffic will be redirected."/>
</arg>
<arg type="integer32" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].frontendPort" options="frontend-port">
<help short="The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].transportProtocol" options="transport-protocol">
<help short="The transport protocol for the endpoint."/>
<enum>
<item name="Tcp" value=""Tcp""/>
<item name="Udp" value=""Udp""/>
</enum>
</arg>
</item>
</arg>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.sshAuthority" options="ssh-authority">
<help short="The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.subnetId" options="subnet-id">
<help short="The resource ID of the sub net."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.networkInterface.virtualNetworkId" options="virtual-network-id">
<help short="The resource ID of the virtual network."/>
</arg>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.notes" options="notes" group="Properties">
<help short="The notes of the virtual machine."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.ownerObjectId" options="owner-object-id" group="Properties">
<help short="The object identifier of the owner of the virtual machine."/>
<default value=""dynamicValue""/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.ownerUserPrincipalName" options="owner-user-principal-name" group="Properties">
<help short="The user principal name of the virtual machine owner."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.password" options="password" group="Properties">
<help short="The password of the virtual machine administrator."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.planId" options="plan-id" group="Properties">
<help short="The id of the plan associated with the virtual machine image"/>
</arg>
<arg type="array<object>" var="$formula.properties.formulaContent.properties.scheduleParameters" options="schedule-parameters" group="Properties">
<help short="Virtual Machine schedules to be created"/>
<item type="object">
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].name" options="name">
<help short="The name of the virtual machine or environment"/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence" options="daily-recurrence" group="Properties">
<help short="If the schedule will occur once each day of the week, specify the daily recurrence."/>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence.time" options="time">
<help short="The time of day the schedule will occur."/>
</arg>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence" options="hourly-recurrence" group="Properties">
<help short="If the schedule will occur multiple times a day, specify the hourly recurrence."/>
<arg type="integer32" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence.minute" options="minute">
<help short="Minutes of the hour the schedule will run."/>
</arg>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings" options="notification-settings" group="Properties">
<help short="Notification settings."/>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.emailRecipient" options="email-recipient">
<help short="The email recipient to send notifications to (can be a list of semi-colon separated email addresses)."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.notificationLocale" options="notification-locale">
<help short="The locale to use when sending a notification (fallback for unsupported languages is EN)."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.status" options="status">
<help short="If notifications are enabled for this schedule (i.e. Enabled, Disabled)."/>
<default value=""Disabled""/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg type="integer32" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.timeInMinutes" options="time-in-minutes">
<help short="Time in minutes before event at which notification will be sent."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.webhookUrl" options="webhook-url">
<help short="The webhook URL to which the notification will be sent."/>
</arg>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.status" options="status" group="Properties">
<help short="The status of the schedule (i.e. Enabled, Disabled)"/>
<default value=""Disabled""/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.targetResourceId" options="target-resource-id" group="Properties">
<help short="The resource ID to which the schedule belongs"/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.taskType" options="task-type" group="Properties">
<help short="The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart)."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.timeZoneId" options="time-zone-id" group="Properties">
<help short="The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)"/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence" options="weekly-recurrence" group="Properties">
<help short="If the schedule will occur only some days of the week, specify the weekly recurrence."/>
<arg type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.time" options="time">
<help short="The time of the day the schedule will occur."/>
</arg>
<arg type="array<string>" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.weekdays" options="weekdays">
<help short="The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.)."/>
<item type="string"/>
</arg>
</arg>
<arg type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].tags" options="tags">
<help short="The tags of the resource."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</item>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.size" options="size" group="Properties">
<help short="The size of the virtual machine."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.sshKey" options="ssh-key" group="Properties">
<help short="The SSH key of the virtual machine administrator."/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.storageType" options="storage-type" group="Properties">
<help short="Storage type to use for virtual machine (i.e. Standard, Premium)."/>
<default value=""labStorageType""/>
</arg>
<arg type="string" var="$formula.properties.formulaContent.properties.userName" options="user-name" group="Properties">
<help short="The user name of the virtual machine."/>
</arg>
<arg type="object" var="$formula.properties.formulaContent.tags" options="tags">
<help short="The tags of the resource."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</arg>
<arg type="string" var="$formula.properties.osType" options="os-type" group="Properties">
<help short="The OS type of the formula."/>
</arg>
<arg type="object" var="$formula.properties.vm" options="vm" group="Properties">
<help short="Information about a VM from which a formula is to be created."/>
<arg type="string" var="$formula.properties.vm.labVmId" options="lab-vm-id">
<help short="The identifier of the VM from which a formula is to be created."/>
</arg>
</arg>
</argGroup>
<operation operationId="Formulas_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}">
<request method="put">
<path>
<param type="string" name="labName" arg="$Path.labName" required="True"/>
<param type="string" name="name" arg="$Path.name" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2018-09-15""/>
</const>
</query>
<body>
<json>
<schema type="object" name="formula" required="True" clientFlatten="True">
<prop type="ResourceLocation" name="location" arg="$formula.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="description" arg="$formula.properties.description"/>
<prop type="object" name="formulaContent" arg="$formula.properties.formulaContent">
<prop type="string" name="location" arg="$formula.properties.formulaContent.location"/>
<prop type="string" name="name" arg="$formula.properties.formulaContent.name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="boolean" name="allowClaim" arg="$formula.properties.formulaContent.properties.allowClaim">
<default value="false"/>
</prop>
<prop type="array<object>" name="artifacts" arg="$formula.properties.formulaContent.properties.artifacts">
<item type="object">
<prop type="string" name="artifactId" arg="$formula.properties.formulaContent.properties.artifacts[].artifactId"/>
<prop type="string" name="artifactTitle" arg="$formula.properties.formulaContent.properties.artifacts[].artifactTitle"/>
<prop type="string" name="deploymentStatusMessage" arg="$formula.properties.formulaContent.properties.artifacts[].deploymentStatusMessage"/>
<prop type="dateTime" name="installTime" arg="$formula.properties.formulaContent.properties.artifacts[].installTime"/>
<prop type="array<object>" name="parameters" arg="$formula.properties.formulaContent.properties.artifacts[].parameters">
<item type="object">
<prop type="string" name="name" arg="$formula.properties.formulaContent.properties.artifacts[].parameters[].name"/>
<prop type="string" name="value" arg="$formula.properties.formulaContent.properties.artifacts[].parameters[].value"/>
</item>
</prop>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.artifacts[].status"/>
<prop type="string" name="vmExtensionStatusMessage" arg="$formula.properties.formulaContent.properties.artifacts[].vmExtensionStatusMessage"/>
</item>
</prop>
<prop type="object" name="bulkCreationParameters" arg="$formula.properties.formulaContent.properties.bulkCreationParameters">
<prop type="integer32" name="instanceCount" arg="$formula.properties.formulaContent.properties.bulkCreationParameters.instanceCount"/>
</prop>
<prop type="dateTime" name="createdDate" arg="$formula.properties.formulaContent.properties.createdDate"/>
<prop type="string" name="customImageId" arg="$formula.properties.formulaContent.properties.customImageId"/>
<prop type="array<object>" name="dataDiskParameters" arg="$formula.properties.formulaContent.properties.dataDiskParameters">
<item type="object">
<prop type="object" name="attachNewDataDiskOptions" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions">
<prop type="string" name="diskName" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskName"/>
<prop type="integer32" name="diskSizeGiB" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskSizeGiB"/>
<prop type="string" name="diskType" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskType">
<enum>
<item value=""Premium""/>
<item value=""Standard""/>
<item value=""StandardSSD""/>
</enum>
</prop>
</prop>
<prop type="string" name="existingLabDiskId" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].existingLabDiskId"/>
<prop type="string" name="hostCaching" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].hostCaching">
<enum>
<item value=""None""/>
<item value=""ReadOnly""/>
<item value=""ReadWrite""/>
</enum>
</prop>
</item>
</prop>
<prop type="boolean" name="disallowPublicIpAddress" arg="$formula.properties.formulaContent.properties.disallowPublicIpAddress">
<default value="false"/>
</prop>
<prop type="string" name="environmentId" arg="$formula.properties.formulaContent.properties.environmentId"/>
<prop type="dateTime" name="expirationDate" arg="$formula.properties.formulaContent.properties.expirationDate"/>
<prop type="object" name="galleryImageReference" arg="$formula.properties.formulaContent.properties.galleryImageReference">
<prop type="string" name="offer" arg="$formula.properties.formulaContent.properties.galleryImageReference.offer"/>
<prop type="string" name="osType" arg="$formula.properties.formulaContent.properties.galleryImageReference.osType"/>
<prop type="string" name="publisher" arg="$formula.properties.formulaContent.properties.galleryImageReference.publisher"/>
<prop type="string" name="sku" arg="$formula.properties.formulaContent.properties.galleryImageReference.sku"/>
<prop type="string" name="version" arg="$formula.properties.formulaContent.properties.galleryImageReference.version"/>
</prop>
<prop type="boolean" name="isAuthenticationWithSshKey" arg="$formula.properties.formulaContent.properties.isAuthenticationWithSshKey"/>
<prop type="string" name="labSubnetName" arg="$formula.properties.formulaContent.properties.labSubnetName"/>
<prop type="string" name="labVirtualNetworkId" arg="$formula.properties.formulaContent.properties.labVirtualNetworkId"/>
<prop type="object" name="networkInterface" arg="$formula.properties.formulaContent.properties.networkInterface">
<prop type="string" name="dnsName" arg="$formula.properties.formulaContent.properties.networkInterface.dnsName"/>
<prop type="string" name="privateIpAddress" arg="$formula.properties.formulaContent.properties.networkInterface.privateIpAddress"/>
<prop type="string" name="publicIpAddress" arg="$formula.properties.formulaContent.properties.networkInterface.publicIpAddress"/>
<prop type="string" name="publicIpAddressId" arg="$formula.properties.formulaContent.properties.networkInterface.publicIpAddressId"/>
<prop type="string" name="rdpAuthority" arg="$formula.properties.formulaContent.properties.networkInterface.rdpAuthority"/>
<prop type="object" name="sharedPublicIpAddressConfiguration" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration">
<prop type="array<object>" name="inboundNatRules" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules">
<item type="object">
<prop type="integer32" name="backendPort" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].backendPort"/>
<prop type="integer32" name="frontendPort" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].frontendPort"/>
<prop type="string" name="transportProtocol" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].transportProtocol">
<enum>
<item value=""Tcp""/>
<item value=""Udp""/>
</enum>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="sshAuthority" arg="$formula.properties.formulaContent.properties.networkInterface.sshAuthority"/>
<prop type="string" name="subnetId" arg="$formula.properties.formulaContent.properties.networkInterface.subnetId"/>
<prop type="string" name="virtualNetworkId" arg="$formula.properties.formulaContent.properties.networkInterface.virtualNetworkId"/>
</prop>
<prop type="string" name="notes" arg="$formula.properties.formulaContent.properties.notes"/>
<prop type="string" name="ownerObjectId" arg="$formula.properties.formulaContent.properties.ownerObjectId">
<default value=""dynamicValue""/>
</prop>
<prop type="string" name="ownerUserPrincipalName" arg="$formula.properties.formulaContent.properties.ownerUserPrincipalName"/>
<prop type="string" name="password" arg="$formula.properties.formulaContent.properties.password" secret="True"/>
<prop type="string" name="planId" arg="$formula.properties.formulaContent.properties.planId"/>
<prop type="array<object>" name="scheduleParameters" arg="$formula.properties.formulaContent.properties.scheduleParameters">
<item type="object">
<prop type="string" name="name" arg="$formula.properties.formulaContent.properties.scheduleParameters[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="dailyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence">
<prop type="string" name="time" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence.time"/>
</prop>
<prop type="object" name="hourlyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence">
<prop type="integer32" name="minute" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence.minute"/>
</prop>
<prop type="object" name="notificationSettings" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings">
<prop type="string" name="emailRecipient" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.emailRecipient"/>
<prop type="string" name="notificationLocale" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.notificationLocale"/>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="timeInMinutes" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.timeInMinutes"/>
<prop type="string" name="webhookUrl" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.webhookUrl"/>
</prop>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="string" name="targetResourceId" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.targetResourceId"/>
<prop type="string" name="taskType" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.taskType"/>
<prop type="string" name="timeZoneId" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.timeZoneId"/>
<prop type="object" name="weeklyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence">
<prop type="string" name="time" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.time"/>
<prop type="array<string>" name="weekdays" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.weekdays">
<item type="string"/>
</prop>
</prop>
</prop>
<prop type="object" name="tags" arg="$formula.properties.formulaContent.properties.scheduleParameters[].tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</item>
</prop>
<prop type="string" name="size" arg="$formula.properties.formulaContent.properties.size"/>
<prop type="string" name="sshKey" arg="$formula.properties.formulaContent.properties.sshKey" secret="True"/>
<prop type="string" name="storageType" arg="$formula.properties.formulaContent.properties.storageType">
<default value=""labStorageType""/>
</prop>
<prop type="string" name="userName" arg="$formula.properties.formulaContent.properties.userName"/>
</prop>
<prop type="object" name="tags" arg="$formula.properties.formulaContent.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="string" name="osType" arg="$formula.properties.osType"/>
<prop type="object" name="vm" arg="$formula.properties.vm">
<prop type="string" name="labVmId" arg="$formula.properties.vm.labVmId"/>
</prop>
</prop>
<prop type="object" name="tags" arg="$formula.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.DevTestLab/labs/{}/formulas/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop readOnly="True" type="string" name="author"/>
<prop readOnly="True" type="dateTime" name="creationDate"/>
<prop type="string" name="description"/>
<prop type="object" name="formulaContent">
<prop type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="boolean" name="allowClaim">
<default value="false"/>
</prop>
<prop type="array<object>" name="artifacts">
<item type="object">
<prop type="string" name="artifactId"/>
<prop type="string" name="artifactTitle"/>
<prop type="string" name="deploymentStatusMessage"/>
<prop type="dateTime" name="installTime"/>
<prop type="array<object>" name="parameters">
<item type="object">
<prop type="string" name="name"/>
<prop type="string" name="value"/>
</item>
</prop>
<prop type="string" name="status"/>
<prop type="string" name="vmExtensionStatusMessage"/>
</item>
</prop>
<prop type="object" name="bulkCreationParameters">
<prop type="integer32" name="instanceCount"/>
</prop>
<prop type="dateTime" name="createdDate"/>
<prop type="string" name="customImageId"/>
<prop type="array<object>" name="dataDiskParameters">
<item type="object">
<prop type="object" name="attachNewDataDiskOptions">
<prop type="string" name="diskName"/>
<prop type="integer32" name="diskSizeGiB"/>
<prop type="string" name="diskType">
<enum>
<item value=""Premium""/>
<item value=""Standard""/>
<item value=""StandardSSD""/>
</enum>
</prop>
</prop>
<prop type="string" name="existingLabDiskId"/>
<prop type="string" name="hostCaching">
<enum>
<item value=""None""/>
<item value=""ReadOnly""/>
<item value=""ReadWrite""/>
</enum>
</prop>
</item>
</prop>
<prop type="boolean" name="disallowPublicIpAddress">
<default value="false"/>
</prop>
<prop type="string" name="environmentId"/>
<prop type="dateTime" name="expirationDate"/>
<prop type="object" name="galleryImageReference">
<prop type="string" name="offer"/>
<prop type="string" name="osType"/>
<prop type="string" name="publisher"/>
<prop type="string" name="sku"/>
<prop type="string" name="version"/>
</prop>
<prop type="boolean" name="isAuthenticationWithSshKey"/>
<prop type="string" name="labSubnetName"/>
<prop type="string" name="labVirtualNetworkId"/>
<prop type="object" name="networkInterface">
<prop type="string" name="dnsName"/>
<prop type="string" name="privateIpAddress"/>
<prop type="string" name="publicIpAddress"/>
<prop type="string" name="publicIpAddressId"/>
<prop type="string" name="rdpAuthority"/>
<prop type="object" name="sharedPublicIpAddressConfiguration">
<prop type="array<object>" name="inboundNatRules">
<item type="object">
<prop type="integer32" name="backendPort"/>
<prop type="integer32" name="frontendPort"/>
<prop type="string" name="transportProtocol">
<enum>
<item value=""Tcp""/>
<item value=""Udp""/>
</enum>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="sshAuthority"/>
<prop type="string" name="subnetId"/>
<prop type="string" name="virtualNetworkId"/>
</prop>
<prop type="string" name="notes"/>
<prop type="string" name="ownerObjectId">
<default value=""dynamicValue""/>
</prop>
<prop type="string" name="ownerUserPrincipalName"/>
<prop type="string" name="password" secret="True"/>
<prop type="string" name="planId"/>
<prop type="array<object>" name="scheduleParameters">
<item type="object">
<prop readOnly="True" type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="dailyRecurrence">
<prop type="string" name="time"/>
</prop>
<prop type="object" name="hourlyRecurrence">
<prop type="integer32" name="minute"/>
</prop>
<prop type="object" name="notificationSettings">
<prop type="string" name="emailRecipient"/>
<prop type="string" name="notificationLocale"/>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="timeInMinutes"/>
<prop type="string" name="webhookUrl"/>
</prop>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="string" name="targetResourceId"/>
<prop type="string" name="taskType"/>
<prop type="string" name="timeZoneId"/>
<prop type="object" name="weeklyRecurrence">
<prop type="string" name="time"/>
<prop type="array<string>" name="weekdays">
<item type="string"/>
</prop>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</item>
</prop>
<prop type="string" name="size"/>
<prop type="string" name="sshKey" secret="True"/>
<prop type="string" name="storageType">
<default value=""labStorageType""/>
</prop>
<prop type="string" name="userName"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="string" name="osType"/>
<prop readOnly="True" type="string" name="provisioningState"/>
<prop readOnly="True" type="string" name="uniqueIdentifier"/>
<prop type="object" name="vm">
<prop type="string" name="labVmId"/>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="update" version="2018-09-15">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.devtestlab/labs/{}/formulas/{}" version="2018-09-15" swagger="mgmt-plane/devtestlabs/ResourceProviders/Microsoft.DevTestLab/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRGV2VGVzdExhYi9sYWJzL3tsYWJOYW1lfS9mb3JtdWxhcy97bmFtZX0=/V/MjAxOC0wOS0xNQ=="/>
<argGroup name="">
<arg type="string" var="$Path.labName" options="lab-name" required="True" idPart="name">
<help short="The name of the lab."/>
</arg>
<arg type="string" var="$Path.name" options="name n" required="True" idPart="child_name_1">
<help short="The name of the formula."/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<argGroup name="Formula">
<arg nullable="True" type="ResourceLocation" var="$formula.location" options="location l" group="Formula">
<help short="The location of the resource."/>
</arg>
<arg nullable="True" type="object" var="$formula.tags" options="tags" group="Formula">
<help short="The tags of the resource."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Properties">
<arg nullable="True" type="string" var="$formula.properties.description" options="description" group="Properties">
<help short="The description of the formula."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent" options="formula-content" group="Properties">
<help short="The content of the formula."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.location" options="location">
<help short="The location of the new virtual machine or environment"/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.name" options="name">
<help short="The name of the virtual machine or environment"/>
</arg>
<arg nullable="True" type="boolean" var="$formula.properties.formulaContent.properties.allowClaim" options="allow-claim" group="Properties">
<help short="Indicates whether another user can take ownership of the virtual machine"/>
</arg>
<arg nullable="True" type="array<object>" var="$formula.properties.formulaContent.properties.artifacts" options="artifacts" group="Properties">
<help short="The artifacts to be installed on the virtual machine."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].artifactId" options="artifact-id">
<help short="The artifact's identifier."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].artifactTitle" options="artifact-title">
<help short="The artifact's title."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].deploymentStatusMessage" options="deployment-status-message">
<help short="The status message from the deployment."/>
</arg>
<arg nullable="True" type="dateTime" var="$formula.properties.formulaContent.properties.artifacts[].installTime" options="install-time">
<help short="The time that the artifact starts to install on the virtual machine."/>
</arg>
<arg nullable="True" type="array<object>" var="$formula.properties.formulaContent.properties.artifacts[].parameters" options="parameters">
<help short="The parameters of the artifact."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].parameters[].name" options="name">
<help short="The name of the artifact parameter."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].parameters[].value" options="value">
<help short="The value of the artifact parameter."/>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].status" options="status">
<help short="The status of the artifact."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.artifacts[].vmExtensionStatusMessage" options="vm-extension-status-message">
<help short="The status message from the virtual machine extension."/>
</arg>
</item>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.bulkCreationParameters" options="bulk-creation-parameters" group="Properties">
<help short="The number of virtual machine instances to create."/>
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.bulkCreationParameters.instanceCount" options="instance-count">
<help short="The number of virtual machine instances to create."/>
</arg>
</arg>
<arg nullable="True" type="dateTime" var="$formula.properties.formulaContent.properties.createdDate" options="created-date" group="Properties">
<help short="The creation date of the virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.customImageId" options="custom-image-id" group="Properties">
<help short="The custom image identifier of the virtual machine."/>
</arg>
<arg nullable="True" type="array<object>" var="$formula.properties.formulaContent.properties.dataDiskParameters" options="data-disk-parameters" group="Properties">
<help short="New or existing data disks to attach to the virtual machine after creation"/>
<item nullable="True" type="object">
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions" options="attach-new-data-disk-options">
<help short="Specifies options to attach a new disk to the virtual machine."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskName" options="disk-name">
<help short="The name of the disk to be attached."/>
</arg>
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskSizeGiB" options="disk-size-gi-b">
<help short="Size of the disk to be attached in Gibibytes."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskType" options="disk-type">
<help short="The storage type for the disk (i.e. Standard, Premium)."/>
<enum>
<item name="Premium" value=""Premium""/>
<item name="Standard" value=""Standard""/>
<item name="StandardSSD" value=""StandardSSD""/>
</enum>
</arg>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].existingLabDiskId" options="existing-lab-disk-id">
<help short="Specifies the existing lab disk id to attach to virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.dataDiskParameters[].hostCaching" options="host-caching">
<help short="Caching option for a data disk (i.e. None, ReadOnly, ReadWrite)."/>
<enum>
<item name="None" value=""None""/>
<item name="ReadOnly" value=""ReadOnly""/>
<item name="ReadWrite" value=""ReadWrite""/>
</enum>
</arg>
</item>
</arg>
<arg nullable="True" type="boolean" var="$formula.properties.formulaContent.properties.disallowPublicIpAddress" options="disallow-public-ip-address" group="Properties">
<help short="Indicates whether the virtual machine is to be created without a public IP address."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.environmentId" options="environment-id" group="Properties">
<help short="The resource ID of the environment that contains this virtual machine, if any."/>
</arg>
<arg nullable="True" type="dateTime" var="$formula.properties.formulaContent.properties.expirationDate" options="expiration-date" group="Properties">
<help short="The expiration date for VM."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.galleryImageReference" options="gallery-image-reference" group="Properties">
<help short="The Microsoft Azure Marketplace image reference of the virtual machine."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.offer" options="offer">
<help short="The offer of the gallery image."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.osType" options="os-type">
<help short="The OS type of the gallery image."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.publisher" options="publisher">
<help short="The publisher of the gallery image."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.sku" options="sku">
<help short="The SKU of the gallery image."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.galleryImageReference.version" options="version">
<help short="The version of the gallery image."/>
</arg>
</arg>
<arg nullable="True" type="boolean" var="$formula.properties.formulaContent.properties.isAuthenticationWithSshKey" options="is-authentication-with-ssh-key" group="Properties">
<help short="Indicates whether this virtual machine uses an SSH key for authentication."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.labSubnetName" options="lab-subnet-name" group="Properties">
<help short="The lab subnet name of the virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.labVirtualNetworkId" options="lab-virtual-network-id" group="Properties">
<help short="The lab virtual network identifier of the virtual machine."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.networkInterface" options="network-interface" group="Properties">
<help short="The network interface properties."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.dnsName" options="dns-name">
<help short="The DNS name."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.privateIpAddress" options="private-ip-address">
<help short="The private IP address."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.publicIpAddress" options="public-ip-address">
<help short="The public IP address."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.publicIpAddressId" options="public-ip-address-id">
<help short="The resource ID of the public IP address."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.rdpAuthority" options="rdp-authority">
<help short="The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol)."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration" options="shared-public-ip-address-configuration">
<help short="The configuration for sharing a public IP address across multiple virtual machines."/>
<arg nullable="True" type="array<object>" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules" options="inbound-nat-rules">
<help short="The incoming NAT rules"/>
<item nullable="True" type="object">
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].backendPort" options="backend-port">
<help short="The port to which the external traffic will be redirected."/>
</arg>
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].frontendPort" options="frontend-port">
<help short="The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].transportProtocol" options="transport-protocol">
<help short="The transport protocol for the endpoint."/>
<enum>
<item name="Tcp" value=""Tcp""/>
<item name="Udp" value=""Udp""/>
</enum>
</arg>
</item>
</arg>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.sshAuthority" options="ssh-authority">
<help short="The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.subnetId" options="subnet-id">
<help short="The resource ID of the sub net."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.networkInterface.virtualNetworkId" options="virtual-network-id">
<help short="The resource ID of the virtual network."/>
</arg>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.notes" options="notes" group="Properties">
<help short="The notes of the virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.ownerObjectId" options="owner-object-id" group="Properties">
<help short="The object identifier of the owner of the virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.ownerUserPrincipalName" options="owner-user-principal-name" group="Properties">
<help short="The user principal name of the virtual machine owner."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.password" options="password" group="Properties">
<help short="The password of the virtual machine administrator."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.planId" options="plan-id" group="Properties">
<help short="The id of the plan associated with the virtual machine image"/>
</arg>
<arg nullable="True" type="array<object>" var="$formula.properties.formulaContent.properties.scheduleParameters" options="schedule-parameters" group="Properties">
<help short="Virtual Machine schedules to be created"/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].name" options="name">
<help short="The name of the virtual machine or environment"/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence" options="daily-recurrence" group="Properties">
<help short="If the schedule will occur once each day of the week, specify the daily recurrence."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence.time" options="time">
<help short="The time of day the schedule will occur."/>
</arg>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence" options="hourly-recurrence" group="Properties">
<help short="If the schedule will occur multiple times a day, specify the hourly recurrence."/>
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence.minute" options="minute">
<help short="Minutes of the hour the schedule will run."/>
</arg>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings" options="notification-settings" group="Properties">
<help short="Notification settings."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.emailRecipient" options="email-recipient">
<help short="The email recipient to send notifications to (can be a list of semi-colon separated email addresses)."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.notificationLocale" options="notification-locale">
<help short="The locale to use when sending a notification (fallback for unsupported languages is EN)."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.status" options="status">
<help short="If notifications are enabled for this schedule (i.e. Enabled, Disabled)."/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg nullable="True" type="integer32" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.timeInMinutes" options="time-in-minutes">
<help short="Time in minutes before event at which notification will be sent."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.webhookUrl" options="webhook-url">
<help short="The webhook URL to which the notification will be sent."/>
</arg>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.status" options="status" group="Properties">
<help short="The status of the schedule (i.e. Enabled, Disabled)"/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.targetResourceId" options="target-resource-id" group="Properties">
<help short="The resource ID to which the schedule belongs"/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.taskType" options="task-type" group="Properties">
<help short="The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart)."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.timeZoneId" options="time-zone-id" group="Properties">
<help short="The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md)"/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence" options="weekly-recurrence" group="Properties">
<help short="If the schedule will occur only some days of the week, specify the weekly recurrence."/>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.time" options="time">
<help short="The time of the day the schedule will occur."/>
</arg>
<arg nullable="True" type="array<string>" var="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.weekdays" options="weekdays">
<help short="The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.)."/>
<item nullable="True" type="string"/>
</arg>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.properties.scheduleParameters[].tags" options="tags">
<help short="The tags of the resource."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.size" options="size" group="Properties">
<help short="The size of the virtual machine."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.sshKey" options="ssh-key" group="Properties">
<help short="The SSH key of the virtual machine administrator."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.storageType" options="storage-type" group="Properties">
<help short="Storage type to use for virtual machine (i.e. Standard, Premium)."/>
</arg>
<arg nullable="True" type="string" var="$formula.properties.formulaContent.properties.userName" options="user-name" group="Properties">
<help short="The user name of the virtual machine."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.formulaContent.tags" options="tags">
<help short="The tags of the resource."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</arg>
<arg nullable="True" type="string" var="$formula.properties.osType" options="os-type" group="Properties">
<help short="The OS type of the formula."/>
</arg>
<arg nullable="True" type="object" var="$formula.properties.vm" options="vm" group="Properties">
<help short="Information about a VM from which a formula is to be created."/>
<arg nullable="True" type="string" var="$formula.properties.vm.labVmId" options="lab-vm-id">
<help short="The identifier of the VM from which a formula is to be created."/>
</arg>
</arg>
</argGroup>
<operation operationId="Formulas_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}">
<request method="get">
<path>
<param type="string" name="labName" arg="$Path.labName" required="True"/>
<param type="string" name="name" arg="$Path.name" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2018-09-15""/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="Formula_read">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.DevTestLab/labs/{}/formulas/{}"/>
</prop>
<prop type="ResourceLocation" name="location"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop readOnly="True" type="string" name="author"/>
<prop readOnly="True" type="dateTime" name="creationDate"/>
<prop type="string" name="description"/>
<prop type="object" name="formulaContent">
<prop type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="boolean" name="allowClaim">
<default value="false"/>
</prop>
<prop type="array<object>" name="artifacts">
<item type="object">
<prop type="string" name="artifactId"/>
<prop type="string" name="artifactTitle"/>
<prop type="string" name="deploymentStatusMessage"/>
<prop type="dateTime" name="installTime"/>
<prop type="array<object>" name="parameters">
<item type="object">
<prop type="string" name="name"/>
<prop type="string" name="value"/>
</item>
</prop>
<prop type="string" name="status"/>
<prop type="string" name="vmExtensionStatusMessage"/>
</item>
</prop>
<prop type="object" name="bulkCreationParameters">
<prop type="integer32" name="instanceCount"/>
</prop>
<prop type="dateTime" name="createdDate"/>
<prop type="string" name="customImageId"/>
<prop type="array<object>" name="dataDiskParameters">
<item type="object">
<prop type="object" name="attachNewDataDiskOptions">
<prop type="string" name="diskName"/>
<prop type="integer32" name="diskSizeGiB"/>
<prop type="string" name="diskType">
<enum>
<item value=""Premium""/>
<item value=""Standard""/>
<item value=""StandardSSD""/>
</enum>
</prop>
</prop>
<prop type="string" name="existingLabDiskId"/>
<prop type="string" name="hostCaching">
<enum>
<item value=""None""/>
<item value=""ReadOnly""/>
<item value=""ReadWrite""/>
</enum>
</prop>
</item>
</prop>
<prop type="boolean" name="disallowPublicIpAddress">
<default value="false"/>
</prop>
<prop type="string" name="environmentId"/>
<prop type="dateTime" name="expirationDate"/>
<prop type="object" name="galleryImageReference">
<prop type="string" name="offer"/>
<prop type="string" name="osType"/>
<prop type="string" name="publisher"/>
<prop type="string" name="sku"/>
<prop type="string" name="version"/>
</prop>
<prop type="boolean" name="isAuthenticationWithSshKey"/>
<prop type="string" name="labSubnetName"/>
<prop type="string" name="labVirtualNetworkId"/>
<prop type="object" name="networkInterface">
<prop type="string" name="dnsName"/>
<prop type="string" name="privateIpAddress"/>
<prop type="string" name="publicIpAddress"/>
<prop type="string" name="publicIpAddressId"/>
<prop type="string" name="rdpAuthority"/>
<prop type="object" name="sharedPublicIpAddressConfiguration">
<prop type="array<object>" name="inboundNatRules">
<item type="object">
<prop type="integer32" name="backendPort"/>
<prop type="integer32" name="frontendPort"/>
<prop type="string" name="transportProtocol">
<enum>
<item value=""Tcp""/>
<item value=""Udp""/>
</enum>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="sshAuthority"/>
<prop type="string" name="subnetId"/>
<prop type="string" name="virtualNetworkId"/>
</prop>
<prop type="string" name="notes"/>
<prop type="string" name="ownerObjectId">
<default value=""dynamicValue""/>
</prop>
<prop type="string" name="ownerUserPrincipalName"/>
<prop type="string" name="password" secret="True"/>
<prop type="string" name="planId"/>
<prop type="array<object>" name="scheduleParameters">
<item type="object">
<prop readOnly="True" type="string" name="location"/>
<prop type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="dailyRecurrence">
<prop type="string" name="time"/>
</prop>
<prop type="object" name="hourlyRecurrence">
<prop type="integer32" name="minute"/>
</prop>
<prop type="object" name="notificationSettings">
<prop type="string" name="emailRecipient"/>
<prop type="string" name="notificationLocale"/>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="timeInMinutes"/>
<prop type="string" name="webhookUrl"/>
</prop>
<prop type="string" name="status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="string" name="targetResourceId"/>
<prop type="string" name="taskType"/>
<prop type="string" name="timeZoneId"/>
<prop type="object" name="weeklyRecurrence">
<prop type="string" name="time"/>
<prop type="array<string>" name="weekdays">
<item type="string"/>
</prop>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</item>
</prop>
<prop type="string" name="size"/>
<prop type="string" name="sshKey" secret="True"/>
<prop type="string" name="storageType">
<default value=""labStorageType""/>
</prop>
<prop type="string" name="userName"/>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="string" name="osType"/>
<prop readOnly="True" type="string" name="provisioningState"/>
<prop readOnly="True" type="string" name="uniqueIdentifier"/>
<prop type="object" name="vm">
<prop type="string" name="labVmId"/>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<operation>
<instanceUpdate ref="$Instance">
<json>
<schema type="object" name="formula" required="True" clientFlatten="True">
<prop type="ResourceLocation" name="location" arg="$formula.location"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="string" name="description" arg="$formula.properties.description"/>
<prop type="object" name="formulaContent" arg="$formula.properties.formulaContent">
<prop type="string" name="location" arg="$formula.properties.formulaContent.location"/>
<prop type="string" name="name" arg="$formula.properties.formulaContent.name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="boolean" name="allowClaim" arg="$formula.properties.formulaContent.properties.allowClaim">
<default value="false"/>
</prop>
<prop type="array<object>" name="artifacts" arg="$formula.properties.formulaContent.properties.artifacts">
<item type="object">
<prop type="string" name="artifactId" arg="$formula.properties.formulaContent.properties.artifacts[].artifactId"/>
<prop type="string" name="artifactTitle" arg="$formula.properties.formulaContent.properties.artifacts[].artifactTitle"/>
<prop type="string" name="deploymentStatusMessage" arg="$formula.properties.formulaContent.properties.artifacts[].deploymentStatusMessage"/>
<prop type="dateTime" name="installTime" arg="$formula.properties.formulaContent.properties.artifacts[].installTime"/>
<prop type="array<object>" name="parameters" arg="$formula.properties.formulaContent.properties.artifacts[].parameters">
<item type="object">
<prop type="string" name="name" arg="$formula.properties.formulaContent.properties.artifacts[].parameters[].name"/>
<prop type="string" name="value" arg="$formula.properties.formulaContent.properties.artifacts[].parameters[].value"/>
</item>
</prop>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.artifacts[].status"/>
<prop type="string" name="vmExtensionStatusMessage" arg="$formula.properties.formulaContent.properties.artifacts[].vmExtensionStatusMessage"/>
</item>
</prop>
<prop type="object" name="bulkCreationParameters" arg="$formula.properties.formulaContent.properties.bulkCreationParameters">
<prop type="integer32" name="instanceCount" arg="$formula.properties.formulaContent.properties.bulkCreationParameters.instanceCount"/>
</prop>
<prop type="dateTime" name="createdDate" arg="$formula.properties.formulaContent.properties.createdDate"/>
<prop type="string" name="customImageId" arg="$formula.properties.formulaContent.properties.customImageId"/>
<prop type="array<object>" name="dataDiskParameters" arg="$formula.properties.formulaContent.properties.dataDiskParameters">
<item type="object">
<prop type="object" name="attachNewDataDiskOptions" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions">
<prop type="string" name="diskName" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskName"/>
<prop type="integer32" name="diskSizeGiB" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskSizeGiB"/>
<prop type="string" name="diskType" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].attachNewDataDiskOptions.diskType">
<enum>
<item value=""Premium""/>
<item value=""Standard""/>
<item value=""StandardSSD""/>
</enum>
</prop>
</prop>
<prop type="string" name="existingLabDiskId" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].existingLabDiskId"/>
<prop type="string" name="hostCaching" arg="$formula.properties.formulaContent.properties.dataDiskParameters[].hostCaching">
<enum>
<item value=""None""/>
<item value=""ReadOnly""/>
<item value=""ReadWrite""/>
</enum>
</prop>
</item>
</prop>
<prop type="boolean" name="disallowPublicIpAddress" arg="$formula.properties.formulaContent.properties.disallowPublicIpAddress">
<default value="false"/>
</prop>
<prop type="string" name="environmentId" arg="$formula.properties.formulaContent.properties.environmentId"/>
<prop type="dateTime" name="expirationDate" arg="$formula.properties.formulaContent.properties.expirationDate"/>
<prop type="object" name="galleryImageReference" arg="$formula.properties.formulaContent.properties.galleryImageReference">
<prop type="string" name="offer" arg="$formula.properties.formulaContent.properties.galleryImageReference.offer"/>
<prop type="string" name="osType" arg="$formula.properties.formulaContent.properties.galleryImageReference.osType"/>
<prop type="string" name="publisher" arg="$formula.properties.formulaContent.properties.galleryImageReference.publisher"/>
<prop type="string" name="sku" arg="$formula.properties.formulaContent.properties.galleryImageReference.sku"/>
<prop type="string" name="version" arg="$formula.properties.formulaContent.properties.galleryImageReference.version"/>
</prop>
<prop type="boolean" name="isAuthenticationWithSshKey" arg="$formula.properties.formulaContent.properties.isAuthenticationWithSshKey"/>
<prop type="string" name="labSubnetName" arg="$formula.properties.formulaContent.properties.labSubnetName"/>
<prop type="string" name="labVirtualNetworkId" arg="$formula.properties.formulaContent.properties.labVirtualNetworkId"/>
<prop type="object" name="networkInterface" arg="$formula.properties.formulaContent.properties.networkInterface">
<prop type="string" name="dnsName" arg="$formula.properties.formulaContent.properties.networkInterface.dnsName"/>
<prop type="string" name="privateIpAddress" arg="$formula.properties.formulaContent.properties.networkInterface.privateIpAddress"/>
<prop type="string" name="publicIpAddress" arg="$formula.properties.formulaContent.properties.networkInterface.publicIpAddress"/>
<prop type="string" name="publicIpAddressId" arg="$formula.properties.formulaContent.properties.networkInterface.publicIpAddressId"/>
<prop type="string" name="rdpAuthority" arg="$formula.properties.formulaContent.properties.networkInterface.rdpAuthority"/>
<prop type="object" name="sharedPublicIpAddressConfiguration" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration">
<prop type="array<object>" name="inboundNatRules" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules">
<item type="object">
<prop type="integer32" name="backendPort" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].backendPort"/>
<prop type="integer32" name="frontendPort" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].frontendPort"/>
<prop type="string" name="transportProtocol" arg="$formula.properties.formulaContent.properties.networkInterface.sharedPublicIpAddressConfiguration.inboundNatRules[].transportProtocol">
<enum>
<item value=""Tcp""/>
<item value=""Udp""/>
</enum>
</prop>
</item>
</prop>
</prop>
<prop type="string" name="sshAuthority" arg="$formula.properties.formulaContent.properties.networkInterface.sshAuthority"/>
<prop type="string" name="subnetId" arg="$formula.properties.formulaContent.properties.networkInterface.subnetId"/>
<prop type="string" name="virtualNetworkId" arg="$formula.properties.formulaContent.properties.networkInterface.virtualNetworkId"/>
</prop>
<prop type="string" name="notes" arg="$formula.properties.formulaContent.properties.notes"/>
<prop type="string" name="ownerObjectId" arg="$formula.properties.formulaContent.properties.ownerObjectId">
<default value=""dynamicValue""/>
</prop>
<prop type="string" name="ownerUserPrincipalName" arg="$formula.properties.formulaContent.properties.ownerUserPrincipalName"/>
<prop type="string" name="password" arg="$formula.properties.formulaContent.properties.password" secret="True"/>
<prop type="string" name="planId" arg="$formula.properties.formulaContent.properties.planId"/>
<prop type="array<object>" name="scheduleParameters" arg="$formula.properties.formulaContent.properties.scheduleParameters">
<item type="object">
<prop type="string" name="name" arg="$formula.properties.formulaContent.properties.scheduleParameters[].name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="dailyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence">
<prop type="string" name="time" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.dailyRecurrence.time"/>
</prop>
<prop type="object" name="hourlyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence">
<prop type="integer32" name="minute" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.hourlyRecurrence.minute"/>
</prop>
<prop type="object" name="notificationSettings" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings">
<prop type="string" name="emailRecipient" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.emailRecipient"/>
<prop type="string" name="notificationLocale" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.notificationLocale"/>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="timeInMinutes" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.timeInMinutes"/>
<prop type="string" name="webhookUrl" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.notificationSettings.webhookUrl"/>
</prop>
<prop type="string" name="status" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.status">
<default value=""Disabled""/>
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="string" name="targetResourceId" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.targetResourceId"/>
<prop type="string" name="taskType" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.taskType"/>
<prop type="string" name="timeZoneId" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.timeZoneId"/>
<prop type="object" name="weeklyRecurrence" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence">
<prop type="string" name="time" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.time"/>
<prop type="array<string>" name="weekdays" arg="$formula.properties.formulaContent.properties.scheduleParameters[].properties.weeklyRecurrence.weekdays">
<item type="string"/>
</prop>
</prop>
</prop>
<prop type="object" name="tags" arg="$formula.properties.formulaContent.properties.scheduleParameters[].tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</item>
</prop>
<prop type="string" name="size" arg="$formula.properties.formulaContent.properties.size"/>
<prop type="string" name="sshKey" arg="$formula.properties.formulaContent.properties.sshKey" secret="True"/>
<prop type="string" name="storageType" arg="$formula.properties.formulaContent.properties.storageType">
<default value=""labStorageType""/>
</prop>
<prop type="string" name="userName" arg="$formula.properties.formulaContent.properties.userName"/>
</prop>
<prop type="object" name="tags" arg="$formula.properties.formulaContent.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</prop>
<prop type="string" name="osType" arg="$formula.properties.osType"/>
<prop type="object" name="vm" arg="$formula.properties.vm">
<prop type="string" name="labVmId" arg="$formula.properties.vm.labVmId"/>
</prop>
</prop>
<prop type="object" name="tags" arg="$formula.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="Formulas_CreateOrUpdate">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}">
<request method="put">
<path>
<param type="string" name="labName" arg="$Path.labName" required="True"/>
<param type="string" name="name" arg="$Path.name" required="True"/>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True"/>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True"/>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2018-09-15""/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@Formula_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@ODataV4Format"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
</commandGroup>
</CodeGen>