pspulumiyaml.azurenative.labservices.psm1
using module @{ ModuleName = "PSPulumiYaml"; ModuleVersion = "0.0.3"; GUID = "909344e0-a08f-45f6-8177-80e36bb2ba58" } function Invoke-AzureNativeFunctionLabservicesGetGlobalUserEnvironment { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($expand=environment)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName, [parameter(mandatory=$False,HelpMessage='The resourceId of the environment)')] [string] $environmentId ) process { $arguments = @{} $arguments["environmentId"] = $environmentId $arguments["userName"] = $userName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getGlobalUserEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesListGlobalUserEnvironments { param ( [parameter(mandatory=$False,HelpMessage='The resource Id of the lab)')] [string] $labId, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["userName"] = $userName if($PSBoundParameters.Keys -icontains 'labId') { $arguments["labId"] = $labId } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:listGlobalUserEnvironments -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetLabAccount { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($expand=sizeConfiguration)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName ) process { $arguments = @{} $arguments["labAccountName"] = $labAccountName $arguments["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getLabAccount -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetSchedule { param ( [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab that uniquely identifies it within containing lab account. Used in resource URIs.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The name of the schedule that uniquely identifies it within containing lab. Used in resource URIs.)')] [string] $scheduleName ) process { $arguments = @{} $arguments["labName"] = $labName $arguments["resourceGroupName"] = $resourceGroupName $arguments["scheduleName"] = $scheduleName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getSchedule -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetEnvironment { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($expand=networkInterface)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The name of the environment Setting.)')] [string] $environmentSettingName, [parameter(mandatory=$False,HelpMessage='The name of the environment.)')] [string] $environmentName, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName ) process { $arguments = @{} $arguments["environmentName"] = $environmentName $arguments["environmentSettingName"] = $environmentSettingName $arguments["labAccountName"] = $labAccountName $arguments["labName"] = $labName $arguments["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getEnvironment -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetLabAccountRegionalAvailability { param ( [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName ) process { $arguments = @{} $arguments["labAccountName"] = $labAccountName $arguments["resourceGroupName"] = $resourceGroupName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getLabAccountRegionalAvailability -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetUser { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($select=email)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["labAccountName"] = $labAccountName $arguments["labName"] = $labName $arguments["resourceGroupName"] = $resourceGroupName $arguments["userName"] = $userName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getUser -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetGalleryImage { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($select=author)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the gallery Image.)')] [string] $galleryImageName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName ) process { $arguments = @{} $arguments["galleryImageName"] = $galleryImageName $arguments["labAccountName"] = $labAccountName $arguments["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getGalleryImage -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetLab { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($select=maxUsersInLab)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName ) process { $arguments = @{} $arguments["labAccountName"] = $labAccountName $arguments["labName"] = $labName $arguments["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getLab -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetGlobalUserOperationBatchStatus { param ( [parameter(mandatory=$False,HelpMessage='The operation url of long running operation)')] [string[]] $urls, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["urls"] = $urls $arguments["userName"] = $userName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getGlobalUserOperationBatchStatus -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetGlobalUserOperationStatus { param ( [parameter(mandatory=$False,HelpMessage='The operation url of long running operation)')] [string] $operationUrl, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["operationUrl"] = $operationUrl $arguments["userName"] = $userName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getGlobalUserOperationStatus -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetEnvironmentSetting { param ( [parameter(mandatory=$False,HelpMessage='Specify the $expand query. Example: ''properties($select=publishingState)'')')] [string] $expand, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The name of the environment Setting.)')] [string] $environmentSettingName ) process { $arguments = @{} $arguments["environmentSettingName"] = $environmentSettingName $arguments["labAccountName"] = $labAccountName $arguments["labName"] = $labName $arguments["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'expand') { $arguments["expand"] = $expand } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getEnvironmentSetting -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesListGlobalUserLabs { param ( [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["userName"] = $userName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:listGlobalUserLabs -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetLabPlan { param ( [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab plan that uniquely identifies it within containing resource group. Used in resource URIs and in UI.)')] [string] $labPlanName ) process { $arguments = @{} $arguments["labPlanName"] = $labPlanName $arguments["resourceGroupName"] = $resourceGroupName $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getLabPlan -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function Invoke-AzureNativeFunctionLabservicesGetGlobalUserPersonalPreferences { param ( [parameter(mandatory=$False,HelpMessage='Resource Id of the lab account)')] [string] $labAccountResourceId, [parameter(mandatory=$False,HelpMessage='Resource Id of the lab to add/remove from the favorites list)')] [string] $labResourceId, [parameter(mandatory=$False,HelpMessage='Enum indicating if user is adding or removing a favorite lab)')] [string] [ArgumentCompletions('Add', 'Remove')] $addRemove, [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName ) process { $arguments = @{} $arguments["userName"] = $userName if($PSBoundParameters.Keys -icontains 'labAccountResourceId') { $arguments["labAccountResourceId"] = $labAccountResourceId } if($PSBoundParameters.Keys -icontains 'labResourceId') { $arguments["labResourceId"] = $labResourceId } if($PSBoundParameters.Keys -icontains 'addRemove') { $arguments["addRemove"] = $addRemove } $functionObject = Invoke-PulumiFunction -Name azure-native:labservices:getGlobalUserPersonalPreferences -variableName $([guid]::NewGuid().Guid) -Arguments $arguments return $functionObject } } function New-AzureNativeLabservicesLabAccount { [Alias('azure_native_labservices_labaccount')] param ( [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='Represents if region selection is enabled)')] [bool] $enabledRegionSelection, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:LabAccount") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'enabledRegionSelection') { $resource.properties["enabledRegionSelection"] = $enabledRegionSelection } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'labAccountName') { $resource.properties["labAccountName"] = $labAccountName } $global:pulumiresources += $resource return $resource } } class ConnectionProfile { [ArgumentCompletions('Public', 'Private', 'None')] [object] $clientSshAccess [ArgumentCompletions('Public', 'Private', 'None')] [object] $webRdpAccess [ArgumentCompletions('Public', 'Private', 'None')] [object] $clientRdpAccess [ArgumentCompletions('Public', 'Private', 'None')] [object] $webSshAccess } function New-AzureNativeTypeLabservicesConnectionProfile { param ( [parameter(mandatory=$False,HelpMessage='The enabled access level for Client Access over SSH.)')] $clientSshAccess, [parameter(mandatory=$False,HelpMessage='The enabled access level for Web Access over RDP.)')] $webRdpAccess, [parameter(mandatory=$False,HelpMessage='The enabled access level for Client Access over RDP.)')] $clientRdpAccess, [parameter(mandatory=$False,HelpMessage='The enabled access level for Web Access over SSH.)')] $webSshAccess ) process { return $([ConnectionProfile]$PSBoundParameters) } } class SupportInfo { [string] $email [string] $instructions [string] $url [string] $phone } function New-AzureNativeTypeLabservicesSupportInfo { param ( [parameter(mandatory=$False,HelpMessage='Support contact email address.)')] [string] $email, [parameter(mandatory=$False,HelpMessage='Support instructions.)')] [string] $instructions, [parameter(mandatory=$False,HelpMessage='Support web address.)')] [string] $url, [parameter(mandatory=$False,HelpMessage='Support contact phone number.)')] [string] $phone ) process { return $([SupportInfo]$PSBoundParameters) } } class AutoShutdownProfile { [string] $idleDelay [ArgumentCompletions('Enabled', 'Disabled')] [object] $shutdownWhenNotConnected [ArgumentCompletions('Enabled', 'Disabled')] [object] $shutdownOnDisconnect [string] $disconnectDelay [string] $noConnectDelay [ArgumentCompletions('None', 'UserAbsence', 'LowUsage')] [object] $shutdownOnIdle } function New-AzureNativeTypeLabservicesAutoShutdownProfile { param ( [parameter(mandatory=$False,HelpMessage='The amount of time a VM will idle before it is shutdown if this behavior is enabled.)')] [string] $idleDelay, [parameter(mandatory=$False,HelpMessage='Whether a VM will get shutdown when it hasn''t been connected to after a period of time.)')] $shutdownWhenNotConnected, [parameter(mandatory=$False,HelpMessage='Whether shutdown on disconnect is enabled)')] $shutdownOnDisconnect, [parameter(mandatory=$False,HelpMessage='The amount of time a VM will stay running after a user disconnects if this behavior is enabled.)')] [string] $disconnectDelay, [parameter(mandatory=$False,HelpMessage='The amount of time a VM will stay running before it is shutdown if no connection is made and this behavior is enabled.)')] [string] $noConnectDelay, [parameter(mandatory=$False,HelpMessage='Whether a VM will get shutdown when it has idled for a period of time.)')] $shutdownOnIdle ) process { return $([AutoShutdownProfile]$PSBoundParameters) } } class LabPlanNetworkProfile { [string] $subnetId } function New-AzureNativeTypeLabservicesLabPlanNetworkProfile { param ( [parameter(mandatory=$False,HelpMessage='The external subnet resource id)')] [string] $subnetId ) process { return $([LabPlanNetworkProfile]$PSBoundParameters) } } function New-AzureNativeLabservicesLabPlan { [Alias('azure_native_labservices_labplan')] param ( [parameter(mandatory=$False,HelpMessage='The default lab connection profile. This can be changed on a lab resource and only provides a default profile.)')] [ConnectionProfile] $defaultConnectionProfile, [parameter(mandatory=$False,HelpMessage='Resource ID of the Shared Image Gallery attached to this lab plan. When saving a lab template virtual machine image it will be persisted in this gallery. Shared images from the gallery can be made available to use when creating new labs.)')] [string] $sharedGalleryId, [parameter(mandatory=$False,HelpMessage='The allowed regions for the lab creator to use when creating labs using this lab plan.)')] [string[]] $allowedRegions, [parameter(mandatory=$False,HelpMessage='Support contact information and instructions for users of the lab plan. This information is displayed to lab owners and virtual machine users for all labs in the lab plan.)')] [SupportInfo] $supportInfo, [parameter(mandatory=$False,HelpMessage='Base Url of the lms instance this lab plan can link lab rosters against.)')] [string] $linkedLmsInstance, [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The default lab shutdown profile. This can be changed on a lab resource and only provides a default profile.)')] [AutoShutdownProfile] $defaultAutoShutdownProfile, [parameter(mandatory=$False,HelpMessage='The lab plan network profile. To enforce lab network policies they must be defined here and cannot be changed when there are existing labs associated with this lab plan.)')] [LabPlanNetworkProfile] $defaultNetworkProfile, [parameter(mandatory=$False,HelpMessage='The name of the lab plan that uniquely identifies it within containing resource group. Used in resource URIs and in UI.)')] [string] $labPlanName, [parameter(mandatory=$False,HelpMessage='Resource tags.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')] [string] $location, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:LabPlan") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'defaultConnectionProfile') { $resource.properties["defaultConnectionProfile"] = $defaultConnectionProfile } if($PSBoundParameters.Keys -icontains 'sharedGalleryId') { $resource.properties["sharedGalleryId"] = $sharedGalleryId } if($PSBoundParameters.Keys -icontains 'allowedRegions') { $resource.properties["allowedRegions"] = $allowedRegions } if($PSBoundParameters.Keys -icontains 'supportInfo') { $resource.properties["supportInfo"] = $supportInfo } if($PSBoundParameters.Keys -icontains 'linkedLmsInstance') { $resource.properties["linkedLmsInstance"] = $linkedLmsInstance } if($PSBoundParameters.Keys -icontains 'defaultAutoShutdownProfile') { $resource.properties["defaultAutoShutdownProfile"] = $defaultAutoShutdownProfile } if($PSBoundParameters.Keys -icontains 'defaultNetworkProfile') { $resource.properties["defaultNetworkProfile"] = $defaultNetworkProfile } if($PSBoundParameters.Keys -icontains 'labPlanName') { $resource.properties["labPlanName"] = $labPlanName } if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } $global:pulumiresources += $resource return $resource } } function New-AzureNativeLabservicesGalleryImage { [Alias('azure_native_labservices_galleryimage')] param ( [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The name of the gallery Image.)')] [string] $galleryImageName, [parameter(mandatory=$False,HelpMessage='Indicates whether this gallery has been overridden for this lab account)')] [bool] $isOverride, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='Indicates if the plan has been authorized for programmatic deployment.)')] [bool] $isPlanAuthorized, [parameter(mandatory=$False,HelpMessage='Indicates whether this gallery image is enabled.)')] [bool] $isEnabled, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:GalleryImage") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["labAccountName"] = $labAccountName $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'galleryImageName') { $resource.properties["galleryImageName"] = $galleryImageName } if($PSBoundParameters.Keys -icontains 'isOverride') { $resource.properties["isOverride"] = $isOverride } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'isPlanAuthorized') { $resource.properties["isPlanAuthorized"] = $isPlanAuthorized } if($PSBoundParameters.Keys -icontains 'isEnabled') { $resource.properties["isEnabled"] = $isEnabled } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } $global:pulumiresources += $resource return $resource } } function New-AzureNativeLabservicesUser { [Alias('azure_native_labservices_user')] param ( [parameter(mandatory=$False,HelpMessage='The name of the user.)')] [string] $userName, [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:User") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["labAccountName"] = $labAccountName $resource.properties["labName"] = $labName $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'userName') { $resource.properties["userName"] = $userName } if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } $global:pulumiresources += $resource return $resource } } class RecurrencePattern { [string] $expirationDate [ArgumentCompletions('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')] [string] $weekDays [int] $interval [ArgumentCompletions('Daily', 'Weekly')] [object] $frequency } function New-AzureNativeTypeLabservicesRecurrencePattern { param ( [parameter(mandatory=$False,HelpMessage='When the recurrence will expire. This date is inclusive.)')] [string] $expirationDate, [parameter(mandatory=$False,HelpMessage='The week days the schedule runs. Used for when the Frequency is set to Weekly.)')] $weekDays, [parameter(mandatory=$False,HelpMessage='The interval to invoke the schedule on. For example, interval = 2 and RecurrenceFrequency.Daily will run every 2 days. When no interval is supplied, an interval of 1 is used.)')] [int] $interval, [parameter(mandatory=$False,HelpMessage='The frequency of the recurrence.)')] $frequency ) process { return $([RecurrencePattern]$PSBoundParameters) } } function New-AzureNativeLabservicesSchedule { [Alias('azure_native_labservices_schedule')] param ( [parameter(mandatory=$False,HelpMessage='When lab user virtual machines will be started. Timestamp offsets will be ignored and timeZoneId is used instead.)')] [string] $startAt, [parameter(mandatory=$False,HelpMessage='The name of the schedule that uniquely identifies it within containing lab. Used in resource URIs.)')] [string] $scheduleName, [parameter(mandatory=$False,HelpMessage='Notes for this schedule.)')] [string] $notes, [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The recurrence pattern of the scheduled actions.)')] [RecurrencePattern] $recurrencePattern, [parameter(mandatory=$False,HelpMessage='The name of the lab that uniquely identifies it within containing lab account. Used in resource URIs.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The IANA timezone id for the schedule.)')] [string] $timeZoneId, [parameter(mandatory=$False,HelpMessage='When lab user virtual machines will be stopped. Timestamp offsets will be ignored and timeZoneId is used instead.)')] [string] $stopAt, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:Schedule") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["labName"] = $labName $resource.properties["resourceGroupName"] = $resourceGroupName $resource.properties["stopAt"] = $stopAt $resource.properties["timeZoneId"] = $timeZoneId if($PSBoundParameters.Keys -icontains 'startAt') { $resource.properties["startAt"] = $startAt } if($PSBoundParameters.Keys -icontains 'scheduleName') { $resource.properties["scheduleName"] = $scheduleName } if($PSBoundParameters.Keys -icontains 'notes') { $resource.properties["notes"] = $notes } if($PSBoundParameters.Keys -icontains 'recurrencePattern') { $resource.properties["recurrencePattern"] = $recurrencePattern } $global:pulumiresources += $resource return $resource } } class ResourceSet { [string] $vmResourceId [string] $resourceSettingId } function New-AzureNativeTypeLabservicesResourceSet { param ( [parameter(mandatory=$False,HelpMessage='VM resource Id for the environment)')] [string] $vmResourceId, [parameter(mandatory=$False,HelpMessage='resourceSettingId for the environment)')] [string] $resourceSettingId ) process { return $([ResourceSet]$PSBoundParameters) } } function New-AzureNativeLabservicesEnvironment { [Alias('azure_native_labservices_environment')] param ( [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The name of the environment.)')] [string] $environmentName, [parameter(mandatory=$False,HelpMessage='The name of the environment Setting.)')] [string] $environmentSettingName, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The set of a VM and the setting id it was created for)')] [ResourceSet] $resourceSets, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:Environment") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["environmentSettingName"] = $environmentSettingName $resource.properties["labAccountName"] = $labAccountName $resource.properties["labName"] = $labName $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'environmentName') { $resource.properties["environmentName"] = $environmentName } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'resourceSets') { $resource.properties["resourceSets"] = $resourceSets } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } $global:pulumiresources += $resource return $resource } } class ReferenceVm { [string] $userName [string] $password } function New-AzureNativeTypeLabservicesReferenceVm { param ( [parameter(mandatory=$False,HelpMessage='The username of the virtual machine)')] [string] $userName, [parameter(mandatory=$False,HelpMessage='The password of the virtual machine. This will be set to null in GET resource API)')] [string] $password ) process { return $([ReferenceVm]$PSBoundParameters) } } class ResourceSettings { [ArgumentCompletions('Basic', 'Standard', 'Performance')] [string] $size [ReferenceVm] $referenceVm [string] $galleryImageResourceId } function New-AzureNativeTypeLabservicesResourceSettings { param ( [parameter(mandatory=$False,HelpMessage='The size of the virtual machine)')] [string] [ArgumentCompletions('Basic', 'Standard', 'Performance')] $size, [parameter(mandatory=$False,HelpMessage='Details specific to Reference Vm)')] [ReferenceVm] $referenceVm, [parameter(mandatory=$False,HelpMessage='The resource id of the gallery image used for creating the virtual machine)')] [string] $galleryImageResourceId ) process { return $([ResourceSettings]$PSBoundParameters) } } function New-AzureNativeLabservicesEnvironmentSetting { [Alias('azure_native_labservices_environmentsetting')] param ( [parameter(mandatory=$False,HelpMessage='Brief title describing the environment and its resource settings)')] [string] $title, [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory=$False,HelpMessage='The name of the environment Setting.)')] [string] $environmentSettingName, [parameter(mandatory=$False,HelpMessage='Describes the environment and its resource settings)')] [string] $description, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The resource specific settings)')] [ResourceSettings] $resourceSettings, [parameter(mandatory=$False,HelpMessage='Describes the user''s progress in configuring their environment setting)')] [string] [ArgumentCompletions('NotApplicable', 'Completed')] $configurationState, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:EnvironmentSetting") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["labAccountName"] = $labAccountName $resource.properties["labName"] = $labName $resource.properties["resourceGroupName"] = $resourceGroupName $resource.properties["resourceSettings"] = $resourceSettings if($PSBoundParameters.Keys -icontains 'title') { $resource.properties["title"] = $title } if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } if($PSBoundParameters.Keys -icontains 'environmentSettingName') { $resource.properties["environmentSettingName"] = $environmentSettingName } if($PSBoundParameters.Keys -icontains 'description') { $resource.properties["description"] = $description } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } if($PSBoundParameters.Keys -icontains 'configurationState') { $resource.properties["configurationState"] = $configurationState } $global:pulumiresources += $resource return $resource } } function New-AzureNativeLabservicesLab { [Alias('azure_native_labservices_lab')] param ( [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')] [hashtable] $tags, [parameter(mandatory=$False,HelpMessage='Maximum number of users allowed in the lab.)')] [int] $maxUsersInLab, [parameter(mandatory=$False,HelpMessage='The name of the resource group.)')] [string] $resourceGroupName, [parameter(mandatory=$False,HelpMessage='The name of the lab Account.)')] [string] $labAccountName, [parameter(mandatory=$False,HelpMessage='The provisioning status of the resource.)')] [string] $provisioningState, [parameter(mandatory=$False,HelpMessage='Maximum duration a user can use an environment for in the lab.)')] [string] $usageQuota, [parameter(mandatory=$False,HelpMessage='Lab user access mode (open to all vs. restricted to those listed on the lab).)')] [string] [ArgumentCompletions('Restricted', 'Open')] $userAccessMode, [parameter(mandatory=$False,HelpMessage='The unique immutable identifier of a resource (Guid).)')] [string] $uniqueIdentifier, [parameter(mandatory=$False,HelpMessage='The name of the lab.)')] [string] $labName, [parameter(mandatory=$False,HelpMessage='The location of the resource.)')] [string] $location, [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')] [string] $pulumiid, [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')] [string[]] $PulumiSecretOutputs, [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')] [string[]] $PulumiAliases, [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')] [pulumicustomtimeouts] $PulumiCustomTimeouts, [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')] [bool] $PulumiDeleteBeforeReplace, [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')] [object[]] $PulumiDependsOn, [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')] [string[]] $PulumiIgnoreChanges, [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')] [string] $PulumiImport = [NullString]::Value, [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')] [object] $PulumiParent = [NullString]::Value, [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')] [bool] $PulumiProtect, [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')] [object] $PulumiProvider = [NullString]::Value, [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')] [object[]] $PulumiProviders, [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')] [string[]] $PulumiReplaceOnChanges, [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')] [bool] $PulumiRetainOnDelete, [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')] [string] $PulumiProviderVersion = [NullString]::Value ) process { $resource = [pulumiresource]::new($pulumiid, "azure-native:labservices:Lab") $resource.options.additionalSecretOutputs = $PulumiSecretOutputs $resource.options.aliases = $PulumiAliases $resource.options.customTimeouts = $PulumiCustomTimeouts $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace $resource.options.ignoreChanges = $PulumiIgnoreChanges $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport } $resource.options.protect = $PulumiProtect $resource.options.replaceOnChanges = $PulumiReplaceOnChanges $resource.options.retainOnDelete = $PulumiRetainOnDelete $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion } foreach($Dependency in $DependsOn) { if($Dependency -is [pulumiresource]) { $resource.options.dependson += $Dependency.Reference() } else { $resource.options.dependson += $Dependency } } if($PulumiParent -is [pulumiresource]) { $resource.options.parent = $PulumiParent.Reference() } else { $resource.options.parent = $PulumiParent } foreach($provider in $PulumiProviders) { if($provider -is [pulumiprovider]) { $resource.options.providers += $provider.Reference() } else { $resource.options.providers += $provider } } if($PulumiProvider -is [pulumiprovider]) { $resource.options.provider = $PulumiProvider.Reference() } else { $resource.options.provider = $PulumiProvider } $resource.properties["labAccountName"] = $labAccountName $resource.properties["resourceGroupName"] = $resourceGroupName if($PSBoundParameters.Keys -icontains 'tags') { $resource.properties["tags"] = $tags } if($PSBoundParameters.Keys -icontains 'maxUsersInLab') { $resource.properties["maxUsersInLab"] = $maxUsersInLab } if($PSBoundParameters.Keys -icontains 'provisioningState') { $resource.properties["provisioningState"] = $provisioningState } if($PSBoundParameters.Keys -icontains 'usageQuota') { $resource.properties["usageQuota"] = $usageQuota } if($PSBoundParameters.Keys -icontains 'userAccessMode') { $resource.properties["userAccessMode"] = $userAccessMode } if($PSBoundParameters.Keys -icontains 'uniqueIdentifier') { $resource.properties["uniqueIdentifier"] = $uniqueIdentifier } if($PSBoundParameters.Keys -icontains 'labName') { $resource.properties["labName"] = $labName } if($PSBoundParameters.Keys -icontains 'location') { $resource.properties["location"] = $location } $global:pulumiresources += $resource return $resource } } |