pspulumiyaml.azurenative.solutions.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionSolutionsGetApplicationDefinition
{
    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 managed application definition.)')]
        [string]
        $applicationDefinitionName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:solutions:getApplicationDefinition -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionSolutionsGetApplication
{
    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 managed application.)')]
        [string]
        $applicationName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:solutions:getApplication -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionSolutionsGetJitRequest
{
    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 JIT request.)')]
        [string]
        $jitRequestName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:solutions:getJitRequest -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class JitSchedulingPolicy
{
    [string] $duration
    [string] $startTime
}
function New-AzureNativeTypeSolutionsJitSchedulingPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage=')')]
        [string]
        $duration,
        [parameter(mandatory=$False,HelpMessage='The start time of the request.)')]
        [string]
        $startTime
    )

    process
    {
        return $([JitSchedulingPolicy]$PSBoundParameters)
    }
}
function New-AzureNativeSolutionsJitRequest
{
    [Alias('azure_native_solutions_jitrequest')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The JIT authorization policies.)')]
        $jitAuthorizationPolicies,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The JIT request properties.)')]
        [JitSchedulingPolicy]
        $jitSchedulingPolicy,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the JIT request.)')]
        [string]
        $jitRequestName,
        [parameter(mandatory=$False,HelpMessage='The parent application id.)')]
        [string]
        $applicationResourceId,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:solutions:JitRequest")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["applicationResourceId"] = $applicationResourceId
        $resource.properties["jitAuthorizationPolicies"] = $jitAuthorizationPolicies
        $resource.properties["jitSchedulingPolicy"] = $jitSchedulingPolicy
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class Sku
{
    [string] $model
    [string] $family
    [string] $size
    [string] $tier
    [string] $name
    [int] $capacity
}
function New-AzureNativeTypeSolutionsSku
{
    param (
        [parameter(mandatory=$False,HelpMessage='The SKU model.)')]
        [string]
        $model,
        [parameter(mandatory=$False,HelpMessage='The SKU family.)')]
        [string]
        $family,
        [parameter(mandatory=$False,HelpMessage='The SKU size.)')]
        [string]
        $size,
        [parameter(mandatory=$False,HelpMessage='The SKU tier.)')]
        [string]
        $tier,
        [parameter(mandatory=$False,HelpMessage='The SKU name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The SKU capacity.)')]
        [int]
        $capacity
    )

    process
    {
        return $([Sku]$PSBoundParameters)
    }
}
class Identity
{
    [ArgumentCompletions('SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None')]
    [object] $type
    [object] $userAssignedIdentities
}
function New-AzureNativeTypeSolutionsIdentity
{
    param (
        [parameter(mandatory=$False,HelpMessage='The identity type.)')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The list of user identities associated with the resource. The user identity dictionary key references will be resource ids in the form: ''/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}''.)')]
        [object]
        $userAssignedIdentities
    )

    process
    {
        return $([Identity]$PSBoundParameters)
    }
}
class JitApproverDefinition
{
    [ArgumentCompletions('user', 'group')]
    [string] $type
    [string] $displayName
    [string] $id
}
function New-AzureNativeTypeSolutionsJitApproverDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The approver type.)')]
        [string]
        [ValidateSet('user', 'group')]
        $type,
        [parameter(mandatory=$False,HelpMessage='The approver display name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The approver service principal Id.)')]
        [string]
        $id
    )

    process
    {
        return $([JitApproverDefinition]$PSBoundParameters)
    }
}
class ApplicationJitAccessPolicy
{
    [ArgumentCompletions('NotSpecified', 'AutoApprove', 'ManualApprove')]
    [string] $jitApprovalMode
    [string] $maximumJitAccessDuration
    [bool] $jitAccessEnabled
    [JitApproverDefinition[]] $jitApprovers
}
function New-AzureNativeTypeSolutionsApplicationJitAccessPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='JIT approval mode.)')]
        [string]
        [ValidateSet('NotSpecified', 'AutoApprove', 'ManualApprove')]
        $jitApprovalMode,
        [parameter(mandatory=$False,HelpMessage='The maximum duration JIT access is granted. This is an ISO8601 time period value.)')]
        [string]
        $maximumJitAccessDuration,
        [parameter(mandatory=$False,HelpMessage='Whether the JIT access is enabled.)')]
        [bool]
        $jitAccessEnabled,
        [parameter(mandatory=$False,HelpMessage='The JIT approvers)')]
        $jitApprovers
    )

    process
    {
        return $([ApplicationJitAccessPolicy]$PSBoundParameters)
    }
}
class Plan
{
    [string] $version
    [string] $publisher
    [string] $promotionCode
    [string] $name
    [string] $product
}
function New-AzureNativeTypeSolutionsPlan
{
    param (
        [parameter(mandatory=$False,HelpMessage='The plan''s version.)')]
        [string]
        $version,
        [parameter(mandatory=$False,HelpMessage='The publisher ID.)')]
        [string]
        $publisher,
        [parameter(mandatory=$False,HelpMessage='The promotion code.)')]
        [string]
        $promotionCode,
        [parameter(mandatory=$False,HelpMessage='The plan name.)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='The product code.)')]
        [string]
        $product
    )

    process
    {
        return $([Plan]$PSBoundParameters)
    }
}
function New-AzureNativeSolutionsApplication
{
    [Alias('azure_native_solutions_application')]
    param (
        [parameter(mandatory=$False,HelpMessage='The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog.)')]
        [string]
        $kind,
        [parameter(mandatory=$False,HelpMessage='The SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The managed resource group Id.)')]
        [string]
        $managedResourceGroupId,
        [parameter(mandatory=$False,HelpMessage='The fully qualified path of managed application definition Id.)')]
        [string]
        $applicationDefinitionId,
        [parameter(mandatory=$False,HelpMessage='Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string.)')]
        $parameters,
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='ID of the resource that manages this resource.)')]
        [string]
        $managedBy,
        [parameter(mandatory=$False,HelpMessage='The identity of the resource.)')]
        [Identity]
        $identity,
        [parameter(mandatory=$False,HelpMessage='The managed application Jit access policy.)')]
        [ApplicationJitAccessPolicy]
        $jitAccessPolicy,
        [parameter(mandatory=$False,HelpMessage='The name of the managed application.)')]
        [string]
        $applicationName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The plan information.)')]
        [Plan]
        $plan,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:solutions:Application")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["kind"] = $kind
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
class ApplicationNotificationEndpoint
{
    [string] $uri
}
function New-AzureNativeTypeSolutionsApplicationNotificationEndpoint
{
    param (
        [parameter(mandatory=$False,HelpMessage='The managed application notification endpoint uri.)')]
        [string]
        $uri
    )

    process
    {
        return $([ApplicationNotificationEndpoint]$PSBoundParameters)
    }
}
class ApplicationNotificationPolicy
{
    [ApplicationNotificationEndpoint[]] $notificationEndpoints
}
function New-AzureNativeTypeSolutionsApplicationNotificationPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The managed application notification endpoint.)')]
        $notificationEndpoints
    )

    process
    {
        return $([ApplicationNotificationPolicy]$PSBoundParameters)
    }
}
class ApplicationDeploymentPolicy
{
    [ArgumentCompletions('NotSpecified', 'Incremental', 'Complete')]
    [string] $deploymentMode
}
function New-AzureNativeTypeSolutionsApplicationDeploymentPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The managed application deployment mode.)')]
        [string]
        [ValidateSet('NotSpecified', 'Incremental', 'Complete')]
        $deploymentMode
    )

    process
    {
        return $([ApplicationDeploymentPolicy]$PSBoundParameters)
    }
}
class ApplicationManagementPolicy
{
    [ArgumentCompletions('NotSpecified', 'Unmanaged', 'Managed')]
    [string] $mode
}
function New-AzureNativeTypeSolutionsApplicationManagementPolicy
{
    param (
        [parameter(mandatory=$False,HelpMessage='The managed application management mode.)')]
        [string]
        [ValidateSet('NotSpecified', 'Unmanaged', 'Managed')]
        $mode
    )

    process
    {
        return $([ApplicationManagementPolicy]$PSBoundParameters)
    }
}
class ApplicationPackageLockingPolicyDefinition
{
    [string[]] $allowedActions
    [string[]] $allowedDataActions
}
function New-AzureNativeTypeSolutionsApplicationPackageLockingPolicyDefinition
{
    param (
        [parameter(mandatory=$False,HelpMessage='The deny assignment excluded actions.)')]
        [string[]]
        $allowedActions,
        [parameter(mandatory=$False,HelpMessage='The deny assignment excluded data actions.)')]
        [string[]]
        $allowedDataActions
    )

    process
    {
        return $([ApplicationPackageLockingPolicyDefinition]$PSBoundParameters)
    }
}
function New-AzureNativeSolutionsApplicationDefinition
{
    [Alias('azure_native_solutions_applicationdefinition')]
    param (
        [parameter(mandatory=$False,HelpMessage='Resource location)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The SKU of the resource.)')]
        [Sku]
        $sku,
        [parameter(mandatory=$False,HelpMessage='The collection of managed application artifacts. The portal will use the files specified as artifacts to construct the user experience of creating a managed application from a managed application definition.)')]
        $artifacts,
        [parameter(mandatory=$False,HelpMessage='The name of the managed application definition.)')]
        [string]
        $applicationDefinitionName,
        [parameter(mandatory=$False,HelpMessage='The managed application definition display name.)')]
        [string]
        $displayName,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The managed application definition package file Uri. Use this element)')]
        [string]
        $packageFileUri,
        [parameter(mandatory=$False,HelpMessage='The managed application definition description.)')]
        [string]
        $description,
        [parameter(mandatory=$False,HelpMessage='The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.)')]
        $createUiDefinition,
        [parameter(mandatory=$False,HelpMessage='The managed application lock level.)')]
        $lockLevel,
        [parameter(mandatory=$False,HelpMessage='Resource tags)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='A value indicating whether the package is enabled or not.)')]
        [bool]
        $isEnabled,
        [parameter(mandatory=$False,HelpMessage='The managed application provider policies.)')]
        $policies,
        [parameter(mandatory=$False,HelpMessage='The managed application provider authorizations.)')]
        $authorizations,
        [parameter(mandatory=$False,HelpMessage='ID of the resource that manages this resource.)')]
        [string]
        $managedBy,
        [parameter(mandatory=$False,HelpMessage='The managed application notification policy.)')]
        [ApplicationNotificationPolicy]
        $notificationPolicy,
        [parameter(mandatory=$False,HelpMessage='The managed application deployment policy.)')]
        [ApplicationDeploymentPolicy]
        $deploymentPolicy,
        [parameter(mandatory=$False,HelpMessage='The managed application management policy that determines publisher''s access to the managed resource group.)')]
        [ApplicationManagementPolicy]
        $managementPolicy,
        [parameter(mandatory=$False,HelpMessage='The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string.)')]
        $mainTemplate,
        [parameter(mandatory=$False,HelpMessage='The managed application locking policy.)')]
        [ApplicationPackageLockingPolicyDefinition]
        $lockingPolicy,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:solutions:ApplicationDefinition")

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["lockLevel"] = $lockLevel
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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