Collectors/CrossTenantAccess.ps1

@{
    Name           = 'CrossTenantAccess'
    FileName       = 'crossTenantAccess'
    ApiVersion     = 'v1.0'
    RequiredScopes = @('Policy.Read.All')
    Description    = 'Cross-tenant access defaults (B2B collaboration, trust, automatic consent) and the admin consent request policy.'
    Collect        = {
        $defaultConfiguration = $null
        try {
            $defaultConfiguration = Invoke-TLGraphRequest -Uri '/v1.0/policies/crossTenantAccessPolicy/default'
        }
        catch {
            Write-Verbose ("Cross-tenant access default configuration unavailable: {0}" -f $_.Exception.Message)
        }

        $partners = @()
        try {
            $partners = @(Invoke-TLGraphRequest -Uri '/v1.0/policies/crossTenantAccessPolicy/partners' -All)
        }
        catch {
            Write-Verbose ("Cross-tenant partner configurations unavailable: {0}" -f $_.Exception.Message)
        }

        $adminConsentRequestPolicy = $null
        try {
            $adminConsentRequestPolicy = Invoke-TLGraphRequest -Uri '/v1.0/policies/adminConsentRequestPolicy'
        }
        catch {
            Write-Verbose ("Admin consent request policy unavailable: {0}" -f $_.Exception.Message)
        }

        @{
            default                   = $defaultConfiguration
            partners                  = $partners
            adminConsentRequestPolicy = $adminConsentRequestPolicy
        }
    }
}