pspulumiyaml.azurenative.machinelearning.psm1

using module @{ ModuleName = "PSPulumiYaml"; ModuleVersion = "0.0.3"; GUID = "909344e0-a08f-45f6-8177-80e36bb2ba58" }
function Invoke-AzureNativeFunctionMachinelearningGetWebService
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the web service.)')]
        [string]
        $webServiceName,
        [parameter(mandatory=$False,HelpMessage='The region for which encrypted credential parameters are valid.)')]
        [string]
        $region,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group in which the web service is located.)')]
        [string]
        $resourceGroupName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["webServiceName"] = $webServiceName

        if($PSBoundParameters.Keys -icontains 'region')
        {
            $arguments["region"] = $region
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:machinelearning:getWebService -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMachinelearningGetCommitmentPlan
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Azure ML commitment plan name.)')]
        [string]
        $commitmentPlanName
    )

    process
    {
        $arguments = @{}
        $arguments["commitmentPlanName"] = $commitmentPlanName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:machinelearning:getCommitmentPlan -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMachinelearningListWorkspaceKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the machine learning workspace belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the machine learning workspace.)')]
        [string]
        $workspaceName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:machinelearning:listWorkspaceKeys -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionMachinelearningGetWorkspace
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the machine learning workspace belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the machine learning workspace.)')]
        [string]
        $workspaceName
    )

    process
    {
        $arguments = @{}
        $arguments["resourceGroupName"] = $resourceGroupName
        $arguments["workspaceName"] = $workspaceName

        $functionObject = Invoke-PulumiFunction -Name azure-native:machinelearning:getWorkspace -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ResourceSku
{
    [string] $name
    [string] $tier
    [int] $capacity
}
function New-AzureNativeTypeMachinelearningResourceSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU name. Along with tier, uniquely identifies the SKU.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The SKU tier. Along with name, uniquely identifies the SKU.)')]
        [string]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The scale-out capacity of the resource. 1 is 1x, 2 is 2x, etc. This impacts the quantities and cost of any commitment plan resource.)')]
        [int]
        $capacity
    )

    process
    {
        return $([ResourceSku]$PSBoundParameters)
    }
}
function New-AzureNativeMachinelearningCommitmentPlan
{
    [Alias('azure_native_machinelearning_commitmentplan')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource location.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The resource group name.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The Azure ML commitment plan name.)')]
        [string]
        $commitmentPlanName,
        [parameter(mandatory=$False,HelpMessage='User-defined tags for the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The commitment plan SKU.)')]
        [ResourceSku]
        $sku,
        [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:machinelearning:CommitmentPlan")

        $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 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'commitmentPlanName')
        {
            $resource.properties["commitmentPlanName"] = $commitmentPlanName
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'sku')
        {
            $resource.properties["sku"] = $sku
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class DiagnosticsConfiguration
{
    [ArgumentCompletions('None', 'Error', 'All')]
    [string] $level
    [string] $expiry
}
function New-AzureNativeTypeMachinelearningDiagnosticsConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the verbosity of the diagnostic output. Valid values are: None - disables tracing; Error - collects only error (stderr) traces; All - collects all traces (stdout and stderr).)')]
        [string]
        [ArgumentCompletions('None', 'Error', 'All')]
        $level,
        [parameter(mandatory=$False,HelpMessage='Specifies the date and time when the logging will cease. If null, diagnostic collection is not time limited.)')]
        [string]
        $expiry
    )

    process
    {
        return $([DiagnosticsConfiguration]$PSBoundParameters)
    }
}
class ExampleRequest
{
    [object] $globalParameters
    [object] $inputs
}
function New-AzureNativeTypeMachinelearningExampleRequest
{
    param (
        [parameter(mandatory=$False,HelpMessage='Sample input data for the web service''s global parameters)')]
        [object]
        $globalParameters,
        [parameter(mandatory=$False,HelpMessage='Sample input data for the web service''s input(s) given as an input name to sample input values matrix map.)')]
        [object]
        $inputs
    )

    process
    {
        return $([ExampleRequest]$PSBoundParameters)
    }
}
class RealtimeConfiguration
{
    [int] $maxConcurrentCalls
}
function New-AzureNativeTypeMachinelearningRealtimeConfiguration
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the maximum concurrent calls that can be made to the web service. Minimum value: 4, Maximum value: 200.)')]
        [int]
        $maxConcurrentCalls
    )

    process
    {
        return $([RealtimeConfiguration]$PSBoundParameters)
    }
}
class WebServiceKeys
{
    [string] $secondary
    [string] $primary
}
function New-AzureNativeTypeMachinelearningWebServiceKeys
{
    param (
        [parameter(mandatory=$False,HelpMessage='The secondary access key.)')]
        [string]
        $secondary,
        [parameter(mandatory=$False,HelpMessage='The primary access key.)')]
        [string]
        $primary
    )

    process
    {
        return $([WebServiceKeys]$PSBoundParameters)
    }
}
class StorageAccount
{
    [string] $name
    [string] $key
}
function New-AzureNativeTypeMachinelearningStorageAccount
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the name of the storage account.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Specifies the key used to access the storage account.)')]
        [string]
        $key
    )

    process
    {
        return $([StorageAccount]$PSBoundParameters)
    }
}
class MachineLearningWorkspace
{
    [string] $id
}
function New-AzureNativeTypeMachinelearningMachineLearningWorkspace
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the workspace ID of the machine learning workspace associated with the web service)')]
        [string]
        $id
    )

    process
    {
        return $([MachineLearningWorkspace]$PSBoundParameters)
    }
}
class BlobLocation
{
    [string] $uri
    [string] $credentials
}
function New-AzureNativeTypeMachinelearningBlobLocation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The URI from which the blob is accessible from. For example, aml://abc for system assets or https://xyz for user assets or payload.)')]
        [string]
        $uri,
        [parameter(mandatory=$False,HelpMessage='Access credentials for the blob, if applicable (e.g. blob specified by storage account connection string + blob URI))')]
        [string]
        $credentials
    )

    process
    {
        return $([BlobLocation]$PSBoundParameters)
    }
}
class GraphEdge
{
    [string] $sourceNodeId
    [string] $sourcePortId
    [string] $targetNodeId
    [string] $targetPortId
}
function New-AzureNativeTypeMachinelearningGraphEdge
{
    param (
        [parameter(mandatory=$False,HelpMessage='The source graph node''s identifier.)')]
        [string]
        $sourceNodeId,
        [parameter(mandatory=$False,HelpMessage='The identifier of the source node''s port that the edge connects from.)')]
        [string]
        $sourcePortId,
        [parameter(mandatory=$False,HelpMessage='The destination graph node''s identifier.)')]
        [string]
        $targetNodeId,
        [parameter(mandatory=$False,HelpMessage='The identifier of the destination node''s port that the edge connects into.)')]
        [string]
        $targetPortId
    )

    process
    {
        return $([GraphEdge]$PSBoundParameters)
    }
}
class GraphPackage
{
    [object] $graphParameters
    [object] $nodes
    [GraphEdge[]] $edges
}
class GraphParameterLink
{
    [string] $parameterKey
    [string] $nodeId
}
function New-AzureNativeTypeMachinelearningGraphParameterLink
{
    param (
        [parameter(mandatory=$False,HelpMessage='The identifier of the node parameter that the global parameter maps to.)')]
        [string]
        $parameterKey,
        [parameter(mandatory=$False,HelpMessage='The graph node''s identifier)')]
        [string]
        $nodeId
    )

    process
    {
        return $([GraphParameterLink]$PSBoundParameters)
    }
}
class GraphParameter
{
    [GraphParameterLink[]] $links
    [ArgumentCompletions('String', 'Int', 'Float', 'Enumerated', 'Script', 'Mode', 'Credential', 'Boolean', 'Double', 'ColumnPicker', 'ParameterRange', 'DataGatewayName')]
    [string] $type
    [string] $description
}
function New-AzureNativeTypeMachinelearningGraphParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='Association links for this parameter to nodes in the graph.)')]
        $links,
        [parameter(mandatory=$False,HelpMessage='Graph parameter''s type.)')]
        [string]
        [ArgumentCompletions('String', 'Int', 'Float', 'Enumerated', 'Script', 'Mode', 'Credential', 'Boolean', 'Double', 'ColumnPicker', 'ParameterRange', 'DataGatewayName')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Description of this graph parameter.)')]
        [string]
        $description
    )

    process
    {
        return $([GraphParameter]$PSBoundParameters)
    }
}
class GraphNode
{
    [string] $outputId
    [object] $parameters
    [string] $assetId
    [string] $inputId
}
class WebServiceParameter
{
    [string] $certificateThumbprint
    [object] $value
}
function New-AzureNativeTypeMachinelearningWebServiceParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='If the parameter value in ''value'' field is encrypted, the thumbprint of the certificate should be put here.)')]
        [string]
        $certificateThumbprint,
        [parameter(mandatory=$False,HelpMessage='The parameter value)')]
        $value
    )

    process
    {
        return $([WebServiceParameter]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningGraphNode
{
    param (
        [parameter(mandatory=$False,HelpMessage='The id of the output element represented by this node.)')]
        [string]
        $outputId,
        [parameter(mandatory=$False,HelpMessage='If applicable, parameters of the node. Global graph parameters map into these, with values set at runtime.)')]
        [WebServiceParameter]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='The id of the asset represented by this node.)')]
        [string]
        $assetId,
        [parameter(mandatory=$False,HelpMessage='The id of the input element represented by this node.)')]
        [string]
        $inputId
    )

    process
    {
        return $([GraphNode]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningGraphPackage
{
    param (
        [parameter(mandatory=$False,HelpMessage='The collection of global parameters for the graph, given as a global parameter name to GraphParameter map. Each parameter here has a 1:1 match with the global parameters values map declared at the WebServiceProperties level.)')]
        [GraphParameter]
        $graphParameters,
        [parameter(mandatory=$False,HelpMessage='The set of nodes making up the graph, provided as a nodeId to GraphNode map)')]
        [GraphNode]
        $nodes,
        [parameter(mandatory=$False,HelpMessage='The list of edges making up the graph.)')]
        $edges
    )

    process
    {
        return $([GraphPackage]$PSBoundParameters)
    }
}
class ServiceInputOutputSpecification
{
    [string] $title
    [object] $properties
    [string] $type
    [string] $description
}
class TableSpecification
{
    [string] $title
    [object] $properties
    [string] $type
    [string] $description
    [string] $format
}
class ColumnSpecification
{
    [bool] $xMsIsordered
    [object[]] $enum
    [ArgumentCompletions('Boolean', 'Integer', 'Number', 'String')]
    [string] $type
    [bool] $xMsIsnullable
    [ArgumentCompletions('Byte', 'Char', 'Complex64', 'Complex128', 'Date-time', 'Date-timeOffset', 'Double', 'Duration', 'Float', 'Int8', 'Int16', 'Int32', 'Int64', 'Uint8', 'Uint16', 'Uint32', 'Uint64')]
    [string] $format
}
function New-AzureNativeTypeMachinelearningColumnSpecification
{
    param (
        [parameter(mandatory=$False,HelpMessage='Flag indicating whether the categories are treated as an ordered set or not, if this is a categorical column.)')]
        [bool]
        $xMsIsordered,
        [parameter(mandatory=$False,HelpMessage='If the data type is categorical, this provides the list of accepted categories.)')]
        $enum,
        [parameter(mandatory=$False,HelpMessage='Data type of the column.)')]
        [string]
        [ArgumentCompletions('Boolean', 'Integer', 'Number', 'String')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Flag indicating if the type supports null values or not.)')]
        [bool]
        $xMsIsnullable,
        [parameter(mandatory=$False,HelpMessage='Additional format information for the data type.)')]
        [string]
        [ArgumentCompletions('Byte', 'Char', 'Complex64', 'Complex128', 'Date-time', 'Date-timeOffset', 'Double', 'Duration', 'Float', 'Int8', 'Int16', 'Int32', 'Int64', 'Uint8', 'Uint16', 'Uint32', 'Uint64')]
        $format
    )

    process
    {
        return $([ColumnSpecification]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningTableSpecification
{
    param (
        [parameter(mandatory=$False,HelpMessage='Swagger schema title.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='The set of columns within the data table.)')]
        [ColumnSpecification]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The type of the entity described in swagger.)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='Swagger schema description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The format, if ''type'' is not ''object'')')]
        [string]
        $format
    )

    process
    {
        return $([TableSpecification]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningServiceInputOutputSpecification
{
    param (
        [parameter(mandatory=$False,HelpMessage='The title of your Swagger schema.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='Specifies a collection that contains the column schema for each input or output of the web service. For more information, see the Swagger specification.)')]
        [TableSpecification]
        $properties,
        [parameter(mandatory=$False,HelpMessage='The type of the entity described in swagger. Always ''object''.)')]
        [string]
        $type,
        [parameter(mandatory=$False,HelpMessage='The description of the Swagger schema.)')]
        [string]
        $description
    )

    process
    {
        return $([ServiceInputOutputSpecification]$PSBoundParameters)
    }
}
class CommitmentPlan
{
    [string] $id
}
function New-AzureNativeTypeMachinelearningCommitmentPlan
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the Azure Resource Manager ID of the commitment plan associated with the web service.)')]
        [string]
        $id
    )

    process
    {
        return $([CommitmentPlan]$PSBoundParameters)
    }
}
class WebServicePropertiesForGraph
{
    [DiagnosticsConfiguration] $diagnostics
    [bool] $exposeSampleData
    [object] $assets
    [string] $description
    [bool] $readOnly
    [ExampleRequest] $exampleRequest
    [string] $packageType
    [RealtimeConfiguration] $realtimeConfiguration
    [WebServiceKeys] $keys
    [StorageAccount] $storageAccount
    [string] $title
    [object] $parameters
    [bool] $payloadsInBlobStorage
    [MachineLearningWorkspace] $machineLearningWorkspace
    [BlobLocation] $payloadsLocation
    [GraphPackage] $package
    [ServiceInputOutputSpecification] $input
    [ServiceInputOutputSpecification] $output
    [CommitmentPlan] $commitmentPlan
}
class ModuleAssetParameter
{
    [string] $name
    [string] $parameterType
    [object] $modeValuesInfo
}
class ModeValueInfo
{
    [string] $interfaceString
    [ModuleAssetParameter[]] $parameters
}
function New-AzureNativeTypeMachinelearningModeValueInfo
{
    param (
        [parameter(mandatory=$False,HelpMessage='The interface string name for the nested parameter.)')]
        [string]
        $interfaceString,
        [parameter(mandatory=$False,HelpMessage='The definition of the parameter.)')]
        $parameters
    )

    process
    {
        return $([ModeValueInfo]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningModuleAssetParameter
{
    param (
        [parameter(mandatory=$False,HelpMessage='Parameter name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Parameter type.)')]
        [string]
        $parameterType,
        [parameter(mandatory=$False,HelpMessage='Definitions for nested interface parameters if this is a complex module parameter.)')]
        [ModeValueInfo]
        $modeValuesInfo
    )

    process
    {
        return $([ModuleAssetParameter]$PSBoundParameters)
    }
}
class AssetItem
{
    [object] $outputPorts
    [ModuleAssetParameter[]] $parameters
    [object] $metadata
    [ArgumentCompletions('Module', 'Resource')]
    [string] $type
    [BlobLocation] $locationInfo
    [string] $name
    [object] $inputPorts
    [string] $id
}
class OutputPort
{
    [ArgumentCompletions('Dataset')]
    [string] $type
}
function New-AzureNativeTypeMachinelearningOutputPort
{
    param (
        [parameter(mandatory=$False,HelpMessage='Port data type.)')]
        [string]
        [ArgumentCompletions('Dataset')]
        $type
    )

    process
    {
        return $([OutputPort]$PSBoundParameters)
    }
}
class InputPort
{
    [ArgumentCompletions('Dataset')]
    [string] $type
}
function New-AzureNativeTypeMachinelearningInputPort
{
    param (
        [parameter(mandatory=$False,HelpMessage='Port data type.)')]
        [string]
        [ArgumentCompletions('Dataset')]
        $type
    )

    process
    {
        return $([InputPort]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningAssetItem
{
    param (
        [parameter(mandatory=$False,HelpMessage='Information about the asset''s output ports.)')]
        [OutputPort]
        $outputPorts,
        [parameter(mandatory=$False,HelpMessage='If the asset is a custom module, this holds the module''s parameters.)')]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='If the asset is a custom module, this holds the module''s metadata.)')]
        [hashtable]
        $metadata,
        [parameter(mandatory=$False,HelpMessage='Asset''s type.)')]
        [string]
        [ArgumentCompletions('Module', 'Resource')]
        $type,
        [parameter(mandatory=$False,HelpMessage='Access information for the asset.)')]
        [BlobLocation]
        $locationInfo,
        [parameter(mandatory=$False,HelpMessage='Asset''s friendly name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='Information about the asset''s input ports.)')]
        [InputPort]
        $inputPorts,
        [parameter(mandatory=$False,HelpMessage='Asset''s Id.)')]
        [string]
        $id
    )

    process
    {
        return $([AssetItem]$PSBoundParameters)
    }
}
function New-AzureNativeTypeMachinelearningWebServicePropertiesForGraph
{
    param (
        [parameter(mandatory=$False,HelpMessage='Settings controlling the diagnostics traces collection for the web service.)')]
        [DiagnosticsConfiguration]
        $diagnostics,
        [parameter(mandatory=$False,HelpMessage='When set to true, sample data is included in the web service''s swagger definition. The default value is true.)')]
        [bool]
        $exposeSampleData,
        [parameter(mandatory=$False,HelpMessage='Contains user defined properties describing web service assets. Properties are expressed as Key/Value pairs.)')]
        [AssetItem]
        $assets,
        [parameter(mandatory=$False,HelpMessage='The description of the web service.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='When set to true, indicates that the web service is read-only and can no longer be updated or patched, only removed. Default, is false. Note: Once set to true, you cannot change its value.)')]
        [bool]
        $readOnly,
        [parameter(mandatory=$False,HelpMessage='Defines sample input data for one or more of the service''s inputs.)')]
        [ExampleRequest]
        $exampleRequest,
        [parameter(mandatory=$False,HelpMessage='Specifies the package type. Valid values are Graph (Specifies a web service published through the Machine Learning Studio) and Code (Specifies a web service published using code such as Python). Note: Code is not supported at this time.
Expected value is ''Graph''.)'
)]
        [string]
        $packageType,
        [parameter(mandatory=$False,HelpMessage='Contains the configuration settings for the web service endpoint.)')]
        [RealtimeConfiguration]
        $realtimeConfiguration,
        [parameter(mandatory=$False,HelpMessage='Contains the web service provisioning keys. If you do not specify provisioning keys, the Azure Machine Learning system generates them for you. Note: The keys are not returned from calls to GET operations.)')]
        [WebServiceKeys]
        $keys,
        [parameter(mandatory=$False,HelpMessage='Specifies the storage account that Azure Machine Learning uses to store information about the web service. Only the name of the storage account is returned from calls to GET operations. When updating the storage account information, you must ensure that all necessary assets are available in the new storage account or calls to your web service will fail.)')]
        [StorageAccount]
        $storageAccount,
        [parameter(mandatory=$False,HelpMessage='The title of the web service.)')]
        [string]
        $title,
        [parameter(mandatory=$False,HelpMessage='The set of global parameters values defined for the web service, given as a global parameter name to default value map. If no default value is specified, the parameter is considered to be required.)')]
        [WebServiceParameter]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='When set to true, indicates that the payload size is larger than 3 MB. Otherwise false. If the payload size exceed 3 MB, the payload is stored in a blob and the PayloadsLocation parameter contains the URI of the blob. Otherwise, this will be set to false and Assets, Input, Output, Package, Parameters, ExampleRequest are inline. The Payload sizes is determined by adding the size of the Assets, Input, Output, Package, Parameters, and the ExampleRequest.)')]
        [bool]
        $payloadsInBlobStorage,
        [parameter(mandatory=$False,HelpMessage='Specifies the Machine Learning workspace containing the experiment that is source for the web service.)')]
        [MachineLearningWorkspace]
        $machineLearningWorkspace,
        [parameter(mandatory=$False,HelpMessage='The URI of the payload blob. This parameter contains a value only if the payloadsInBlobStorage parameter is set to true. Otherwise is set to null.)')]
        [BlobLocation]
        $payloadsLocation,
        [parameter(mandatory=$False,HelpMessage='The definition of the graph package making up this web service.)')]
        [GraphPackage]
        $package,
        [parameter(mandatory=$False,HelpMessage='Contains the Swagger 2.0 schema describing one or more of the web service''s inputs. For more information, see the Swagger specification.)')]
        [ServiceInputOutputSpecification]
        $input,
        [parameter(mandatory=$False,HelpMessage='Contains the Swagger 2.0 schema describing one or more of the web service''s outputs. For more information, see the Swagger specification.)')]
        [ServiceInputOutputSpecification]
        $output,
        [parameter(mandatory=$False,HelpMessage='Contains the commitment plan associated with this web service. Set at creation time. Once set, this value cannot be changed. Note: The commitment plan is not returned from calls to GET operations.)')]
        [CommitmentPlan]
        $commitmentPlan
    )

    process
    {
        return $([WebServicePropertiesForGraph]$PSBoundParameters)
    }
}
function New-AzureNativeMachinelearningWebService
{
    [Alias('azure_native_machinelearning_webservice')]
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the location of the resource.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Contains the property payload that describes the web service.)')]
        [WebServicePropertiesForGraph]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Name of the resource group in which the web service is located.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the web service.)')]
        [string]
        $webServiceName,
        [parameter(mandatory=$False,HelpMessage='Contains resource tags defined as key/value pairs.)')]
        [hashtable]
        $tags,
        [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:machinelearning:WebService")

        $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["properties"] = $properties
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'webServiceName')
        {
            $resource.properties["webServiceName"] = $webServiceName
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
function New-AzureNativeMachinelearningWorkspace
{
    [Alias('azure_native_machinelearning_workspace')]
    param (
        [parameter(mandatory=$False,HelpMessage='The email id of the owner for this workspace.)')]
        [string]
        $ownerEmail,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group to which the machine learning workspace belongs.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The location of the resource. This cannot be changed after the resource is created.)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The key vault identifier used for encrypted workspaces.)')]
        [string]
        $keyVaultIdentifierId,
        [parameter(mandatory=$False,HelpMessage='The fully qualified arm id of the storage account associated with this workspace.)')]
        [string]
        $userStorageAccountId,
        [parameter(mandatory=$False,HelpMessage='The tags of the resource.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The name of the machine learning workspace.)')]
        [string]
        $workspaceName,
        [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:machinelearning:Workspace")

        $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["ownerEmail"] = $ownerEmail
        $resource.properties["resourceGroupName"] = $resourceGroupName
        $resource.properties["userStorageAccountId"] = $userStorageAccountId

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'keyVaultIdentifierId')
        {
            $resource.properties["keyVaultIdentifierId"] = $keyVaultIdentifierId
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        if($PSBoundParameters.Keys -icontains 'workspaceName')
        {
            $resource.properties["workspaceName"] = $workspaceName
        }

        $global:pulumiresources += $resource
        return $resource
    }
}