Modules/BenchPress.Azure/Public/Get-ResourceByType.ps1 (425 lines of code) (raw):

# INLINE_SKIP using module ./../Classes/ConfirmResult.psm1 using module ./../Classes/ResourceType.psm1 . $PSScriptRoot/Confirm-Account.ps1 . $PSScriptRoot/Confirm-ActionGroup.ps1 . $PSScriptRoot/Confirm-AksCluster.ps1 . $PSScriptRoot/Confirm-AksNodePool.ps1 . $PSScriptRoot/Confirm-AppInsights.ps1 . $PSScriptRoot/Confirm-AppServicePlan.ps1 . $PSScriptRoot/Confirm-ContainerAppManagedEnv . $PSScriptRoot/Confirm-ContainerRegistry.ps1 . $PSScriptRoot/Confirm-CosmosDBSqlRoleAssignment.ps1 . $PSScriptRoot/Confirm-CosmosDBSqlRoleDefinition.ps1 . $PSScriptRoot/Confirm-DataFactory.ps1 . $PSScriptRoot/Confirm-DataFactoryLinkedService.ps1 . $PSScriptRoot/Confirm-DiagnosticSetting.ps1 . $PSScriptRoot/Confirm-EventHub.ps1 . $PSScriptRoot/Confirm-EventHubConsumerGroup.ps1 . $PSScriptRoot/Confirm-EventHubNamespace.ps1 . $PSScriptRoot/Confirm-KeyVault.ps1 . $PSScriptRoot/Confirm-OperationalInsightsWorkspace.ps1 . $PSScriptRoot/Confirm-PortalDashboard.ps1 . $PSScriptRoot/Confirm-PostgreSqlFlexibleServer . $PSScriptRoot/Confirm-ResourceGroup.ps1 . $PSScriptRoot/Confirm-SearchService.ps1 . $PSScriptRoot/Confirm-SqlDatabase.ps1 . $PSScriptRoot/Confirm-SqlServer.ps1 . $PSScriptRoot/Confirm-StorageAccount.ps1 . $PSScriptRoot/Confirm-StorageContainer.ps1 . $PSScriptRoot/Confirm-StreamAnalyticsCluster.ps1 . $PSScriptRoot/Confirm-SynapseSparkPool.ps1 . $PSScriptRoot/Confirm-SynapseSqlPool.ps1 . $PSScriptRoot/Confirm-SynapseWorkspace.ps1 . $PSScriptRoot/Confirm-VirtualMachine.ps1 . $PSScriptRoot/Confirm-WebApp.ps1 . $PSScriptRoot/Confirm-WebAppStaticSite.ps1 # end INLINE_SKIP function Get-ResourceByType { <# .SYNOPSIS Gets an Azure Resource. .DESCRIPTION The Get-AzBPResourceByType cmdlet gets an Azure resource depending on the resource type (i.e. Action Group, Key Vault, Container Registry, etc.). .PARAMETER ResourceName The name of the Resource. .PARAMETER ResourceGroupName The name of the Resource Group. The name is case insensitive. .PARAMETER ResourceType The type of the Resource. .PARAMETER ServerName If testing an Azure SQL Database resource, the name of the Server to which the Database is assigned. .PARAMETER KeyVaultName If testing an Azure Key Vault resource (e.g., Key Vault Key), the name of the Key Vault to which the resource is assigned. .PARAMETER DataFactoryName If testing an Azure Data Factory Linked Service resource, the name of the Data Factory to which the Linked Service is assigned. .PARAMETER NamespaceName If testing an Azure resource that is associated with a Namespace (e.g., Event Hub), the name of the associated Namespace. .PARAMETER EventHubName If testing a component of Event Hub (e.g., Consumer Group), the name of the Event Hub to which the component is assigned. .PARAMETER WorkspaceName If testing an Azure resource that belongs to some sort of Azure Workspace (e.g., SQL Pool in a Synapse Workspace), the name of the Workspace to which the resource is assigned. .PARAMETER AccountName If testing an Azure resource that is associated with an Account (e.g., Cosmos DB SQL Database, Storage Container), the name of the associated Account. .PARAMETER ServicePrincipalId If testing an Azure Role Assignment, the Enterprise/Managed Application Object ID of the Service Principal. .PARAMETER Scope If testing an Azure Role Assignment, the Scope of the Role Assignment (e.g., /subscriptions/{id}/resourceGroups/{resourceGroupName}). It must start with "/subscriptions/{id}". .PARAMETER RoleDefinitionName If testing an Azure Role Assignment, the name of the Role Definition (e.g., Reader, Contributor etc.). .PARAMETER ServiceName If testing an Azure resource that is associated with a Service (e.g., API Management Service), the name of the associated Service. .PARAMETER RoleAssignmentId If testing an Azure resource that is associated with a Role Assignment (e.g., Cosmos DB SQL Role Assignment), the name of the associated Role Assignment. .PARAMETER RoleDefinitionId If testing an Azure resource that is associated with a Role Definition (e.g., Cosmos DB SQL Role Definition), the name of the associated Role Definition. .PARAMETER JobName If testing an Azure resource that is associated with a Job (e.g., Stream Analytics Output), the name of the associated Job. .PARAMETER ClusterName If the Azure resource is associated with an AKS Cluster (e.g, AKS Node Pool), this is the parameter to use to pass the AKS cluster name. .PARAMETER ResourceId If testing an Azure resource that is associated with a Resource ID (e.g., Diagnostic Setting) this is the parameter to use to pass the Resource ID. .EXAMPLE Get-AzBPResourceByType -ResourceType ActionGroup -ResourceName "bpactiongroup" -ResourceGroupName "rgbenchpresstest" .EXAMPLE Get-AzBPResourceByType -ResourceType VirtualMachine -ResourceName "testvm" -ResourceGroupName "rgbenchpresstest" .INPUTS System.String .OUTPUTS ConfirmResult #> [CmdletBinding()] [OutputType([ConfirmResult])] param ( [Parameter(Mandatory = $false)] [string]$ResourceName, [Parameter(Mandatory = $false)] [string]$ResourceGroupName, [Parameter(Mandatory = $true)] [ResourceType]$ResourceType, [Parameter(Mandatory = $false)] [string]$ServerName, [Parameter(Mandatory = $false)] [string]$KeyVaultName, [Parameter(Mandatory = $false)] [string]$DataFactoryName, [Parameter(Mandatory = $false)] [string]$NamespaceName, [Parameter(Mandatory = $false)] [string]$EventHubName, [Parameter(Mandatory = $false)] [string]$WorkspaceName, [Parameter(Mandatory = $false)] [string]$AccountName, [Parameter(Mandatory = $false)] [string]$ServicePrincipalId, [Parameter(Mandatory = $false)] [string]$Scope, [Parameter(Mandatory = $false)] [string]$RoleDefinitionName, [Parameter(Mandatory = $false)] [string]$ServiceName, [Parameter(Mandatory = $false)] [string]$JobName, [Parameter(Mandatory = $false)] [string]$ClusterName, [Parameter(Mandatory = $false)] [string]$ResourceId, [Parameter(Mandatory = $false)] [string]$RoleAssignmentId, [Parameter(Mandatory = $false)] [string]$RoleDefinitionId ) Begin { } Process { switch ($ResourceType) { "Account" { return Confirm-Account } "ActionGroup" { return Confirm-ActionGroup -ActionGroupName $ResourceName -ResourceGroupName $ResourceGroupName } "AksCluster" { return Confirm-AksCluster -AKSName $ResourceName -ResourceGroupName $ResourceGroupName } "AksNodePool" { $params = @{ ResourceGroupName = $ResourceGroupName ClusterName = $ClusterName Name = $ResourceName } return Confirm-AksNodePool @params } "ApiManagement" { return Confirm-ApiManagement -ResourceGroupName $ResourceGroupName -Name $ResourceName } "ApiManagementApi" { $params = @{ ResourceGroupName = $ResourceGroupName ServiceName = $ServiceName Name = $ResourceName } return Confirm-ApiManagementApi @params } "ApiManagementDiagnostic" { $params = @{ ResourceGroupName = $ResourceGroupName ServiceName = $ServiceName Name = $ResourceName } return Confirm-ApiManagementDiagnostic @params } "ApiManagementLogger" { $params = @{ ResourceGroupName = $ResourceGroupName ServiceName = $ServiceName Name = $ResourceName } return Confirm-ApiManagementLogger @params } "ApiManagementPolicy" { $params = @{ ResourceGroupName = $ResourceGroupName ServiceName = $ServiceName ApiId = $ResourceName } return Confirm-ApiManagementPolicy @params } "AppInsights" { return Confirm-AppInsights -ResourceGroupName $ResourceGroupName -Name $ResourceName } "AppServicePlan" { return Confirm-AppServicePlan -AppServicePlanName $ResourceName -ResourceGroupName $ResourceGroupName } "ContainerApp" { return Confirm-ContainerApp -ResourceGroupName $ResourceGroupName -Name $ResourceName } "ContainerAppManagedEnv" { return Confirm-ContainerAppManagedEnv -ResourceGroupName $ResourceGroupName -Name $ResourceName } "ContainerRegistry" { return Confirm-ContainerRegistry -Name $ResourceName -ResourceGroupName $ResourceGroupName } "CosmosDBAccount" { return Confirm-CosmosDBAccount -ResourceGroupName $ResourceGroupName -Name $ResourceName } "CosmosDBGremlinDatabase" { $params = @{ ResourceGroupName = $ResourceGroupName AccountName = $AccountName Name = $ResourceName } return Confirm-CosmosDBGremlinDatabase @params } "CosmosDBMongoDBDatabase" { $params = @{ ResourceGroupName = $ResourceGroupName AccountName = $AccountName Name = $ResourceName } return Confirm-CosmosDBMongoDBDatabase @params } "CosmosDBSqlDatabase" { $params = @{ ResourceGroupName = $ResourceGroupName AccountName = $AccountName Name = $ResourceName } return Confirm-CosmosDBSqlDatabase @params } "CosmosDBSqlRoleAssignment" { $params = @{ ResourceGroupName = $ResourceGroupName AccountName = $AccountName RoleAssignmentId = $RoleAssignmentId } return Confirm-CosmosDBSqlRoleAssignment @params } "CosmosDBSqlRoleDefinition" { $params = @{ ResourceGroupName = $ResourceGroupName AccountName = $AccountName RoleDefinitionId = $RoleDefinitionId } return Confirm-CosmosDBSqlRoleDefinition @params } "DataFactory" { return Confirm-DataFactory -Name $ResourceName -ResourceGroupName $ResourceGroupName } "DataFactoryLinkedService" { $params = @{ Name = $ResourceName DataFactoryName = $DataFactoryName ResourceGroupName = $ResourceGroupName } return Confirm-DataFactoryLinkedService @params } "DiagnosticSetting" { return Confirm-DiagnosticSetting -ResourceId $ResourceId -Name $ResourceName } "EventHub" { $params = @{ Name = $ResourceName NamespaceName = $NamespaceName ResourceGroupName = $ResourceGroupName } return Confirm-EventHub @params } "EventHubConsumerGroup" { $params = @{ Name = $ResourceName EventHubName = $EventHubName NamespaceName = $NamespaceName ResourceGroupName = $ResourceGroupName } return Confirm-EventHubConsumerGroup @params } "EventHubNamespace" { return Confirm-EventHubNamespace -NamespaceName $ResourceName -ResourceGroupName $ResourceGroupName } "KeyVault" { return Confirm-KeyVault -Name $ResourceName -ResourceGroupName $ResourceGroupName } "KeyVaultCertificate" { return Confirm-KeyVaultCertificate -KeyVaultName $KeyVaultName -Name $ResourceName } "KeyVaultKey" { return Confirm-KeyVaultKey -KeyVaultName $KeyVaultName -Name $ResourceName } "KeyVaultSecret" { return Confirm-KeyVaultSecret -KeyVaultName $KeyVaultName -Name $ResourceName } "OperationalInsightsWorkspace" { return Confirm-OperationalInsightsWorkspace -Name $ResourceName -ResourceGroupName $ResourceGroupName } "PortalDashboard" { return Confirm-PortalDashboard -ResourceGroupName $ResourceGroupName -Name $ResourceName } "PostgreSqlFlexibleServer" { return Confirm-PostgreSqlFlexibleServer -ResourceGroupName $ResourceGroupName -Name $ResourceName } "ResourceGroup" { return Confirm-ResourceGroup -ResourceGroupName $ResourceName } "RoleAssignment" { $params = @{ ServicePrincipalId = $ServicePrincipalId RoleDefinitionName = $RoleDefinitionName Scope = $Scope } return Confirm-RoleAssignment @params } "SearchService" { return Confirm-SearchService -ResourceGroupName $ResourceGroupName -Name $ResourceName } "SqlDatabase" { $params = @{ ServerName = $ServerName DatabaseName = $ResourceName ResourceGroupName = $ResourceGroupName } return Confirm-SqlDatabase @params } "SqlServer" { return Confirm-SqlServer -ServerName $ResourceName -ResourceGroupName $ResourceGroupName } "StorageAccount" { return Confirm-StorageAccount -Name $ResourceName -ResourceGroupName $ResourceGroupName } "StorageContainer" { $params = @{ Name = $ResourceName AccountName = $AccountName ResourceGroupName = $ResourceGroupName } return Confirm-StorageContainer @params } "StreamAnalyticsCluster" { return Confirm-StreamAnalyticsCluster -Name $ResourceName -ResourceGroupName $ResourceGroupName } "StreamAnalyticsFunction" { $params = @{ ResourceGroupName = $ResourceGroupName JobName = $JobName Name = $ResourceName } return Confirm-StreamAnalyticsFunction @params } "StreamAnalyticsInput" { $params = @{ ResourceGroupName = $ResourceGroupName JobName = $JobName Name = $ResourceName } return Confirm-StreamAnalyticsInput @params } "StreamAnalyticsJob" { return Confirm-StreamAnalyticsJob -ResourceGroupName $ResourceGroupName -Name $ResourceName } "StreamAnalyticsOutput" { $params = @{ ResourceGroupName = $ResourceGroupName JobName = $JobName Name = $ResourceName } return Confirm-StreamAnalyticsOutput @params } "StreamAnalyticsTransformation" { $params = @{ ResourceGroupName = $ResourceGroupName JobName = $JobName Name = $ResourceName } return Confirm-StreamAnalyticsTransformation @params } "SynapseSparkPool" { $params = @{ SynapseSparkPoolName = $ResourceName WorkspaceName = $WorkspaceName ResourceGroupName = $ResourceGroupName } return Confirm-SynapseSparkPool @params } "SynapseSqlPool" { $params = @{ SynapseSqlPoolName = $ResourceName WorkspaceName = $WorkspaceName ResourceGroupName = $ResourceGroupName } return Confirm-SynapseSqlPool @params } "SynapseWorkspace" { return Confirm-SynapseWorkspace -WorkspaceName $ResourceName -ResourceGroupName $ResourceGroupName } "VirtualMachine" { return Confirm-VirtualMachine -VirtualMachineName $ResourceName -ResourceGroupName $ResourceGroupName } "WebApp" { return Confirm-WebApp -WebAppName $ResourceName -ResourceGroupName $ResourceGroupName } "WebAppStaticSite" { return Confirm-WebAppStaticSIte -StaticWebAppName $ResourceName -ResourceGroupName $ResourceGroupName } default { Write-Information "Not implemented yet" return $null } } } End { } }