_getEEAccessPackageResourceScopes.ps1

<#
 .Synopsis
  Creates batch requests for accessPackage resource scopes
 
 .Description
  Creates batch requests for GET /identityGovernance/entitlementManagement/accessPackages/{id}?$expand=accessPackageResourceRoleScopes
  https://docs.microsoft.com/en-us/graph/api/accesspackage-list-accesspackageresourcerolescopes?view=graph-rest-beta&tabs=http
 
 .Example
  _getEEAccessPackageResourceScopes -Parents $parentIds -BasePath "C:\temp\AccessPackages"
#>


Function _getEEAccessPackageResourceScopes {
  [CmdletBinding()]
  param
  (
      [Parameter(Mandatory = $true)]
      [string[]]$Parents,

      [Parameter(Mandatory = $true)]
      [string]$BasePath
  )

  foreach ($parentId in $Parents) {
      $outputFileName = Join-Path -Path $BasePath -ChildPath $parentId
      $outputFileName = Join-Path -Path $outputFileName -ChildPath "ResourceScopes"
      $id = $outputFileName -replace '\\', '/'

      # add random number to avoid duplicated ids in batch requests
      $id = _randomizeRequestId $id

      $uri = "identityGovernance/entitlementManagement/accessPackages/$parentId?`$expand=accessPackageResourceRoleScopes(`$expand=accessPackageResourceRole,accessPackageResourceScope)"

      Write-Verbose "Adding request '$uri' with id '$id' to the batch"
      $request = New-GraphBatchRequest -Url $uri -Id $id -header @{ ConsistencyLevel = 'eventual' }

      $BatchRequestBetaApi.Value.Add($request)
  }
}